我在IB中为我的自定义UIView创建了一个用户定义的运行时属性,有趣的是,我可以在touchesBegan:withEvent:方法中访问它,但不能在initWithCoder中访问它:你知道为什么吗?
答案 0 :(得分:9)
如果您需要在设置视图时访问这些值,而不是在initWithCode:
中使用awakeFromNib
答案 1 :(得分:5)
这是因为IB的视图在initWithCoder
之后完成加载。以下内容将帮助您了解该过程。对于UIViewControllers
进行了解释,但概念是相同的(来自ViewController Programming Guide):
在故事板中创建视图控制器时,您可以使用属性 Interface Builder中的configure被序列化为一个存档。后来, 实例化视图控制器时,将加载此存档 记忆和处理。结果是一组属性的对象 匹配您在Interface Builder中设置的那些。存档由加载 调用视图控制器的initWithCoder:方法。