【iOS】Storyboard加载Xib自定义view

一直很混淆这种用法,这里记录下来并分享给小白童鞋们

1. 新建DemoView.swift 和 DemoView.xib
设置xib显示元素如图
2. 设置xib文件的file's onwer选项
设置xib文件的file's onwer
3. 绑定xib中的控件到swift文件中
绑定xib中的控件到swift文件中
绑定xib控件的事件
4. 在swift文件中实现从xib的初始化加载
// 定义container为DemoView的子view, 以便更方便的封装xib
private var container: UIView!

// 从storyboard上初始化时,会调用该方法
required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        xibSetup()
    }

private func xibSetup() {
        container = Bundle.main.loadNibNamed("DemoView", owner: self, options: nil)?.first as! UIView
        container.frame = bounds
        container.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        addSubview(container)
}
5. 在storyboard上使用
storyboard直接使用

这样,基本上写很少的代码,就能实现xib自定义view在任何地方的使用

最终效果

【参考】
http://supereasyapps.com/blog/2014/12/15/create-an-ibdesignable-uiview-subclass-with-code-from-an-xib-file-in-xcode-6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,268评论 8 183
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,200评论 4 61
  • 近几年个人成长主题大热,前两年我跟风买了不少纸质书,大部分没有看完。今年根据自己的兴趣,慎重挑选购买了一批人文书籍...
    刀小娜donna阅读 4,350评论 0 0
  • 雪覆盖了季节却没有掩埋岁月渺远的炊烟被北风吹到梦里模糊了凝望的视线 积雪在脚下闷哼蜷缩的枯草 星星点点竟也有些刺眼...
    易似非阅读 2,224评论 0 1