我一直在研究 IB_designable,这是一个非常棒的功能。但是,我遇到的一个问题是,对于每个视图,我都必须将 UIView 子类化。在该子类中,我必须在 initWithCoder: 方法和 prepareForInterfaceBuilder 中指定 UI 元素:
但是,我希望能够在类的外部指定 UI 元素。
我想创建一个 UIView 子类,它有一个公共属性,我可以从外部设置它并在界面生成器中查看。
这可能吗?
更新:
我知道 IBInspectible。这使得属性在属性检查器中可用。这不是我所说的外部。
IB_DESIGNABLE
@interface DesignableLabel : UILabel
@end
@implementation DesignableLabel
@end
@interface SomeClass : UIViewController {
IBOutlet DesignableLabel *DL;
}
@end
@interface SomeClass
- (void)prepareForInterfaceBuilder {
DL.text = @"Hello World"
}
@end
DesignableLable 是 UILabel 的子类。UILabel 有一个 text 属性。我希望 SomeClass 以某种方式设置该属性。通常,如果我这样做并运行应用程序,它应该显示字符串。但是,为了省去运行应用程序的麻烦,我希望它显示在 Interface builder 中,这样我就可以在输入时看到它的值。