【发布时间】:2016-02-12 17:36:50
【问题描述】:
我在界面生成器中为视图创建了一个笔尖。它的子视图放置有约束,以便它们可以随着视图框架的大小而缩放。
我使用辅助方法从其 nib 初始化视图:
+ (TinyTestResultsView *)ttrView {
TinyTestResultsView *ttrV = [[[NSBundle mainBundle] loadNibNamed:@"TinyTestResultsViewNib" owner:nil options:nil] firstObject];
[ttrV commonInit];
return ttrV;
}
在视图控制器的viewDidLoad 期间,我使用ttrView 方法初始化对象并将其作为子视图添加到self.view。然后 VC 调用网络以获取一些信息,然后根据需要将约束添加到 self.view 和放置它的子视图。它被正确放置和调整大小 - 但是视图显示为没有子视图的白框。 为什么子视图会在视图外渲染?
如果我在 Xcode 中使用 Debug View Hierarchy 然后尝试查找子视图,我会看到它们被渲染到框架之外,并且它们不符合 NIB 的自动布局规则。我对不同的自定义 UIView/nib 使用了完全相同的技术,所以我不确定会发生什么错误。
【问题讨论】:
标签: ios objective-c uiview autolayout