您的位置:首页 > 移动开发 > IOS开发

iOS - 使用自定义的Xib作为自己的子视图

2016-08-29 14:23 417 查看
使用自定义Xib作为自己的子视图方法,新建一个项目XibTest工程,在Main.Storyboard 的View下加入一个View子视图。



新建子视图文件,创建一个SubxibView.swift和SubXib.xib文件,并设置成你想要的内容,并将File‘s Owner的Custom Class 设置成你SubXibView,而View不要与SubXibView关联。



将我们在Main.Storyboard的View 关联上SubXibView,



在SubXibView.swift添加以下代码:

import UIKit

class SubXibView: UIView {

weak var view: UIView!

func loadViewFromNib() -> UIView {
let bundle = NSBundle.init(forClass: SubXibView.self)
let nib = UINib(nibName: String(SubXibView), bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}

func setupSubViews() {
view = loadViewFromNib()
view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
addSubview(view)
}

override init(frame: CGRect) {
super.init(frame: frame)
setupSubViews()
}

convenience init() {
self.init(frame: CGRect.zero)
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupSubViews()
}
}


成功运行,效果如下



成功加载了我们自定义的子视图.

在SubXibView.Xib上添加一个Label,并关联到SubXibView.swift上,在setupSubViews() 最后添加一行代码
testLabel.text = "测试Label"
结果如下:



成功获取到子视图关联的组件,代码中可以调用,也不会报空指针异常问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 加载子视图