ios - UIView 的 subview 在边界外渲染

标签 ios objective-c uiview autolayout

我在界面生成器中为 View 创建了一个 Nib 。它的 subview 放置有约束,因此它们将随着 View 框架的大小而缩放。

我使用辅助方法从其 Nib 初始化 View :

+ (TinyTestResultsView *)ttrView {
    TinyTestResultsView *ttrV = [[[NSBundle mainBundle] loadNibNamed:@"TinyTestResultsViewNib" owner:nil options:nil] firstObject];
    [ttrV commonInit];
    return ttrV;
}

在 View Controller 的 viewDidLoad 期间,我使用 ttrView 方法初始化对象并将其作为 subview 添加到 self.view。然后 VC 调用网络以获取一些信息,然后根据需要向 self.view 和 subview 添加约束以放置它。它被正确放置和调整大小——但是 View 显示为一个没有 subview 的白框。 为什么 subview 在 View 外呈现?

如果我在 Xcode 中使用 Debug View Hierarchy 然后尝试查找 subview ,我会发现它们在框架之外呈现,并且它们不符合 NIB 的自动布局规则。我正在为不同的自定义 UIView/nib 使用完全相同的技术,所以我不确定会发生什么错误。

最佳答案

您的 View 似乎需要将 translatesAutoresizingMaskIntoConstraints 设置为 NO。当您以这种方式从 Nib 文件加载 View 时,此属性设置为 YES,这意味着系统会创建一组约束来复制 View 的自动调整掩码指定的行为。当您使用自动布局时,这不是您想要的。

关于ios - UIView 的 subview 在边界外渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368874/

相关文章:

ios - ObjC-以编程方式将标签添加到UIScrollView

ios - 如何禁用特定 CollectionViewCell 的用户交互,条件是每次点击更新

ios - 如何在后台为 UIButton 设置渐变颜色?

objective-c - iOS5 在 runMode :beforeDate: 期间崩溃

iOS - 带有布局指南的 UITabBar 上方的 UIView

iphone - iphone 的 View 变灰了,怎么办?

iphone - 如何在viewDidAppear中给UIView添加动画?

ios - App Engine 作为 iOS 后端

ios - 即使没有条件请求,设置缓存控制不会自动启用缓存吗?

ios - 找不到 Cocoapods <RestKit/RestKit.h>