【发布时间】:2014-01-05 13:44:18
【问题描述】:
我遇到了 AutoLayout 的问题,这让我非常头疼。我使用 Autolayout 在 .xib 中设置了滚动视图和容器视图。我需要动态地将子视图添加到容器视图中,并试图让它们与自动布局一起玩得很好。这不顺利...
这是我要完成的工作的图片:
所以 Scroll View 和 Container Layer 已经在 xib 中设置了自动布局和视图 1-3 我正在尝试以编程方式添加。我的第一个方法是:
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[viewOne]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(viewOne)]]
导致:
无法同时满足约束。 以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档)
( "<NSLayoutConstraint:0x9d84de0 H:|-(20)-[UIView:0x9d922e0] (Names: '|':UIView:0x9d91fb0 )>", "<NSAutoresizingMaskLayoutConstraint:0x9d9fe90 h=--& v=--& UIView:0x9d922e0.midX ==>" )
我也尝试过使用constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant,但我很难让它以我想要的方式工作。我做错了什么?
斯蒂芬
【问题讨论】:
-
如何创建 viewOne?你在 viewOne 上做 translatesAutoresizingMaskIntoConstraints = NO 吗?
-
您能否向我们提供有关您的子视图的更多信息?
-
viewOne 是使用
[UIView alloc] init]创建的。我也试过[UIView alloc] initWithFrame:CGRectNull] -
子视图最终会变得更加复杂,但现在它们只是空视图。我还没有尝试过
translatesAutoResizingMaskIntoConstraints,但现在会尝试,ty
标签: ios objective-c cocoa-touch autolayout