我通常喜欢在界面生成器中创建和设计我的 uiview。有时我需要在 xib 中创建单个视图,该视图可以在故事板的多个视图控制器中重用。
在故事板中重用并渲染 xib。
使用 Swift 2.2 和 Xcode 7.3.1 进行测试
1 ---- 创建一个名为“DesignableXibView”的新UIView
- 文件 > 新建 > 文件 > 源 > Cocoa Touch 类 > UIView
2 ---- 创建一个名为“DesignableXibView”的匹配xib文件
3----设置xib的文件所有者
- 选择 xib
- 选择文件的所有者
- 在身份检查器中将自定义类设置为“DesignableXibView”。
- 注意:不要在xib上设置视图的自定义类。只有文件所有者!
4 ---- DesignableXibView的实现
// DesignableXibView.swift
import UIKit
@IBDesignable
class DesignableXibView: UIView {
var contentView : UIView?
override init(frame: CGRect) {
super.init(frame: frame)
xibSetup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
xibSetup()
}
func xibSetup() {
contentView = loadViewFromNib()
// use bounds not frame or it'll be offset
contentView!.frame = bounds
// Make the view stretch with containing view
contentView!.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
// Adding custom subview on top of our view (over any custom drawing > see note below)
addSubview(contentView!)
}
func loadViewFromNib() -> UIView! {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: String(self.dynamicType), bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
}
5 ---- 在故事板中测试可重用视图
- 打开你的故事板
- 添加视图
- 设置该视图的自定义类
-
等一下 ... BOOM!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)