2012-11-27 25 views
4

我在我的视图控制器中使用自动布局,以对齐uiview,就像它是一个导航栏(对齐到顶部,拉伸到拖尾和前导侧和44高度)。帧的视图似乎没有设置在awakeFromNib

我已将此视图分类,并且在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

当调用awakeFromNib时,视图尚未创建。在此方法中从视图中获取任何属性的最佳方法是在尝试访问属性之前调用[self view]

+0

嗨,卡特,你能写更多的细节吗?以及如何更改'awakeFromNib'的子视图框架'view'? – aircraft

+1

反思时,最好的子类方法是'viewDidLayoutSubviews' –

相关问题