我在视图控制器中使用autolayout,将uiview对齐为导航栏(与顶部对齐,拉伸到尾部和前端以及44高度)。
我已将此视图子类化,并且在awakeFromNib
期间,我想向其添加子视图。
但是,当我添加这些子视图(也有约束到父视图)时,它不起作用。
最初我认为约束编程不正确,但是,在记录视图的框架之后如下:
- (void)awakeFromNib
{
[super awakeFromNib];
NSLog(@"%@", NSStringFromCGRect(self.frame));
}
我得到以下输出:
2012-11-27 03:25:25.976 myApp[8262:c07] {{0, 0}, {0, 0}}
然而,当我登录时,touchesBegan:withEvent:
会记录正确的帧大小。
有谁知道可能导致这种情况的原因?
我还尝试在所有相关视图上设置setTranslatesAutoresizingMaskIntoConstraints:NO
。但似乎没有任何效果。
提前致谢!
答案 0 :(得分:0)
调用awakeFromNib
时,尚未创建视图。从此方法的视图中获取任何类型的属性的最佳方法是在尝试访问属性之前调用[self view]
。