Ben*_*ime 6 header uiscrollview ios autolayout
在本技术说明中, Apple声明您可以通过向UISCrollView的superview添加约束来使UIScrollView的子视图固定/浮动.我试过了,但我做错了,我无法弄清楚问题是什么.
请注意,通过在视图和滚动视图子树外部的视图(例如滚动视图的超级视图)之间创建约束,可以使滚动视图的子视图显示为浮动(不滚动)在其他滚动内容上.
这就是我做的.我已经设置了UIScrollView并尝试将固定视图添加到scrollview的顶部,如下所示:
_testOverlay = [[UIView alloc] init];
_testOverlay.backgroundColor = [UIColor blueColor];
_testOverlay.translatesAutoresizingMaskIntoConstraints = NO;
[self.scrollView addSubview:_testOverlay];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_testOverlay]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_testOverlay)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_testOverlay(64)]-(>=0)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_testOverlay)]];
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,添加的视图将与scrollview一起移动并且不会"浮动".这里有什么想法吗?
在视图和滚动视图的子树外部的视图之间,例如滚动视图的超视图.
这部分很关键.self.scrollView是一个超级视图_testOverlay.所以,在@"|[_testOverlay]|"垂直条参考self.scrollView.你必须用和之间的约束替换这个约束_testOverlay(我想)self.view.我不确定是否可以使用可视化格式语言,但你当然可以使用它constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant.它会像这样(我不会发布整个代码,因为它是looong):
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.view
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:_testOverlay
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4105 次 |
| 最近记录: |