【发布时间】:2013-12-30 14:54:01
【问题描述】:
我尝试了很多解决方案,但无法让 UIScrollView 通过它的子视图调整大小。
错误:
(
"<NSLayoutConstraint:0x16e71240 V:[RouteView:0x16d76fd0]-(10)-[RouteView:0x16e6fbb0]>",
"<NSLayoutConstraint:0x16e71270 V:[RouteView:0x16e6fbb0(150)]>",
"<NSLayoutConstraint:0x16d78710 V:[RouteView:0x16e6fbb0]-(10)-[RouteView:0x16e702c0]>",
"<NSLayoutConstraint:0x16e71190 V:[RouteView:0x16e702c0(150)]>",
"<NSLayoutConstraint:0x16d78810 V:[RouteView:0x16e702c0]-(10)-[RouteView:0x16e70700]>",
"<NSLayoutConstraint:0x16e713e0 V:[RouteView:0x16e70700(150)]>",
"<NSLayoutConstraint:0x16d78900 V:[RouteView:0x16e70700]-(0)-| (Names: '|':UIView:0x16e6da80 )>",
"<NSLayoutConstraint:0x16e71030 V:[UIView:0x16e6da80]-(10)-[RouteView:0x16d76fd0]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x16d78810 V:[RouteView:0x16e702c0]-(10)-[RouteView:0x16e70700]>
我的层次结构:
Class UIView contains
--UIScrollView
--mainViewOfScroller
----10-----------10
----|------------|
----UIView-10-UIView
----|------------|
----10-----------10
----|------------|
----UIView-10-UIView
………
我做了什么:
1.对于 scroller(UIScrollView) 的所有子视图,我设置 translatesAutoresizingMaskIntoConstraints=NO
2.通过self的宽度和高度将滚动条高度设置为最大值(self是类UIView,它是主UIView)
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scroller]|" options:0 metrics: 0 views:views]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scroller]|" options:0 metrics: 0 views:views]];
3.将 mainViewOfScroller 设置为最大宽度(而不是高度可调整大小)
[scroller addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:| [mainViewOfScroller(==scroller)]|" options:0 metrics:0 views:views]];
4.然后我想将 mainViewOfScroller 的底部固定到 mainViewOfScroller.subviews.lastObject 的底部
[scroller addConstraint:[NSLayoutConstraint constraintWithItem:mainViewOfScroller attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:mainViewOfScroller.subviews.lastObject attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]];
【问题讨论】:
标签: ios uiscrollview autolayout