繁体   English   中英

IBOutlet/IBAction 和以编程方式构建视图之间的快速区别?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM