关闭

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

标签: ios加载子视图
309人阅读 评论(0) 收藏 举报
分类:

使用自定义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"结果如下:
这里写图片描述
成功获取到子视图关联的组件,代码中可以调用,也不会报空指针异常问题。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:83615次
    • 积分:1675
    • 等级:
    • 排名:千里之外
    • 原创:77篇
    • 转载:42篇
    • 译文:2篇
    • 评论:33条
    文章分类
    最新评论