在我想要子类化的项目中,我有许多现有的UILabels
。在IB中将它们设置为我的UILabel
子类,而不是花费几天时间将它们单独设置为想要以编程方式设置它们
点击此处: How to programmatically set custom class?
猜测了几个:UILabel_setClass(self.contentView, [MyLabel class]);
- 隐式声明错误
和
Class lbl = [[MyLabel alloc] init];
for (id view in [self.contentView subviews]) {
if ([view isKindOfClass:[UILabel class]]) {
//....sub it here?
}
}
答案 0 :(得分:-1)
首先,更改对象类是非常糟糕的主意。这是一种嗅觉代码。如果将来新开发人员将使用默认的UILabel
类,则会出现奇怪的错误。运行时 - 是Objective-C的一个伟大而最糟糕的特性。它可以在坏人手中创建隐藏的错误。所以要非常仔细地使用它并两次思考 - 你真的需要它在项目中。更好 - 明确编写代码,使用设计模式等。
在您的问题中不清楚为什么需要更改对象类。如果您需要更改外观 - 请使用UIAppearance
。如果您需要扩展功能,请使用Extensions
。