问题 UIview的Xcode 8返回高度= 1000和宽度= 1000(实际大小为(328,40))


由于我安装了Xcode 8,我遇到了麻烦。 我没有得到每个或任何UIView的正确值。

我也得到了UIView的约束警报。所以我更新它。 但是视图返回1000作为宽度或高度。 我试过或搜索了很多。但没有得到任何适当的解决方案。 请帮助我。


7372
2017-09-20 13:01


起源



答案:


如上所述 这里,你应该打电话 layoutIfNeeded 为了你的观点 viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view layoutIfNeeded];

    // Now all your subviews are sized as you expect
}

14
2017-09-22 12:49



谢谢..我会试试这个。 - Sommm
它适用于swift - self.view.layoutIfNeeded() - Antony Ouseph
不适用于textView inputAccessoryView。但我想我可以在设置inputAccessoryView之前手动设置框架...但我讨厌硬编码:( - user2387149


答案:


如上所述 这里,你应该打电话 layoutIfNeeded 为了你的观点 viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view layoutIfNeeded];

    // Now all your subviews are sized as you expect
}

14
2017-09-22 12:49



谢谢..我会试试这个。 - Sommm
它适用于swift - self.view.layoutIfNeeded() - Antony Ouseph
不适用于textView inputAccessoryView。但我想我可以在设置inputAccessoryView之前手动设置框架...但我讨厌硬编码:( - user2387149


对于 斯威夫特3 :

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.layoutIfNeeded()
}

1
2017-10-21 07:06





在xcode 8中,我无法使layoutIfNeeded完全正常工作,所以我不得不将故事板保存为Xcode 7文件。但是,这个问题似乎在xcode8.1中得到修复    在这里看到这个评论


0
2017-11-05 01:27