[英]Swift difference between IBOutlet/IBAction and programatically constructing a view?
我对 swift 有点陌生,我不明白 Interface Builder Outlet/Actions 和以编程方式构建视图之间有什么区别。 如果我有 IBOutlet 为什么我不需要仍然将它们添加为 self.view 的子视图,为什么我不需要实例化它们? 同样,为了不创建两个问题,为什么在创建自定义 UiView 的情况下我必须使用 Bundle.loadNib 加载 xib 文件? 谢谢,
你不能在实例化时初始化一个本质上不是 nil 的属性。 Interface Builder 插座,它总是在其所有者之后初始化。 在这种特定情况下 - 假设它在 Interface Builder 中正确配置 - 你已经保证在使用之前插座是非零的。 这就是为什么我们可以使用如下:
@IBOutlet private var searchBar: UISearchBar!
此外,您也已经添加了子视图。
SearchViewController - ContentView - searchBar
这意味着 ContentView 或 self.view 已经是 searchBar 的超级视图,因此您不需要添加为子视图。
IBAction,IBOutlet,负责连接Storyboard 上的对象。 IBOutlet 是访问值的变量,IBAction 可以定义对事件的操作。 使用 Storyboard,可以快速创建原型并且易于实现。 但是,如果您与多人一起工作,则可能会引起冲突,因此请务必小心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.