我目前正在swift
学习iOS开发。
在xcode中,我知道最常用的@IB
是@IBAction
和@IBOutlet
,还有其他@IB
,例如@IBInspectable
,{{1} }。
但我想知道,还有其他@IBDesignable
可用吗?他们的用例是什么?
答案 0 :(得分:7)
那些是属性,而AFAIK Apple没有完整的列表,但有一个IDE
test file in swift repository,它会收集所有IB
前缀的数据(可能是看台) for Interface Builder
):
https://developer.apple.com/documentation/appkit/constants/interface_builder_constants/ibaction
Interface Builder使用的类型限定符,用于将方法公开为 用户界面元素和应用程序代码之间的连接点。用过的 而不是方法声明中的void返回类型。例如 如何使用此标识符,请参阅Xcode概述。
换句话说 - 它将您的故事板对象(例如UIButton
)连接到可以对其执行的操作@IBAction func didTap(_ sender: Any)
Interface Builder使用的类型限定符,用于将符号公开为 用于将消息从应用程序代码发送给用户的连接点 界面元素。在a中的对象类型之前使用 属性或实例变量声明。有关如何使用的示例 此标识符,请参阅Xcode概述。
换句话说 - 当您想要更改(ex)标签中的文本时,可以参考这些内容。 @IBOutlet weak var label: UILabel!
每当一组出口,应该具有相似(或更好 - 相同!)的行为和样式,你可以将它们放在@IBOutletCollection
下。它看起来像这样:@IBOutlet var someLabels: [UILabel]!
以下两者都有助于实时渲染:
您可以使用两个不同的属性 - @ IBDesignable和 @ IBInspectable - 启用实时,交互式自定义视图设计 Interface Builder。创建继承自的自定义视图时 UIView类或NSView类
您可以添加@IBDesignable 在类声明之前的属性。添加自定义后 查看界面生成器(通过设置视图的自定义类) 在检查器窗格中,Interface Builder在您的视图中呈现您的视图 画布。
您还可以将@IBInspectable属性添加到具有与用户定义的运行时属性兼容的类型的属性。将自定义视图添加到Interface Builder后,可以在检查器中编辑这些属性。
More information you can find here
还有其他一些:@GKInspectable
,@NSManaged
,@nonobjc
,@available
等等...您可以阅读有关attributes in swift here <的更多信息/ p>
答案 1 :(得分:3)
我认为Apple没有完整而紧凑的清单。但是如果你看看Apple的iBook 使用Swift与Cocoa和Objective-C 并寻找&#34; @ IB&#34;,你会发现所有属性都有解释。您还可以找到其他属性的说明,例如@NSManaged
或@objc
。