【问题标题】:View of frame not appeared to have set in awakeFromNib在 awakeFromNib 中似乎没有设置框架视图
【发布时间】:2012-11-27 03:30:16
【问题描述】:

我在我的视图控制器中使用自动布局来对齐 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。但似乎没有任何效果。

提前致谢!

【问题讨论】:

    标签: nslayoutconstraint awakefromnib


    【解决方案1】:

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

    【讨论】:

    • 嗨,卡特,你能写更多细节吗?以及如何更改 view 这是 awakeFromNib 的子视图框架?
    • 经过反思,子类化的最佳方法是viewDidLayoutSubviews
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多