【发布时间】:2013-08-23 23:35:38
【问题描述】:
好吧,我知道我的问题已经有了很多答案,但我已经测试了每一个问题,但我仍然遇到问题。 我有一个包含 UIView 的 UIScrollView,我想要动画的主动自动布局。但正因为如此,我的滚动视图不滚动。
这是我的代码:
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_scrollView, _containerScrollView);
[_scrollView setScrollEnabled:YES];
[_scrollView setContentSize:CGSizeMake(_scrollView.frame.size.width, CGRectGetHeight(_containerScrollView.frame))];
_scrollView.userInteractionEnabled = YES;
_scrollView.delaysContentTouches = YES;
[self.superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_scrollView]|" options:0 metrics:0 views:viewsDictionary]];
[self.superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_scrollView]|" options:0 metrics:0 views:viewsDictionary]];
[_scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_containerScrollView]|" options:0 metrics:0 views:viewsDictionary]];
[_scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_containerScrollView]|" options:0 metrics:0 views:viewsDictionary]];
有人可以解释一下为什么它不起作用?
【问题讨论】:
-
scrollView和containerScrollView的大小不同吗?如果它们的大小相同,则滚动视图的 contentSize 将指示无需滚动即可查看所有内容。
-
是的,尺寸不同。 _scrollview 高度:652。_containerScrollView 高度:1050
-
在自动布局中,一般不指定滚动视图的
contentSize,因为它通常由子视图的约束决定。但是,退一步说,也许你可以告诉我们你想要达到的目标。如果不了解所需用户体验的大局,就很难推荐解决方案。例如,动画的本质是什么?你是如何定义_containerScrollView的约束的(我假设它是滚动视图中的UIView,而不是UIScrollView本身)? -
好吧,containerScrollView 是一个包含许多 UIView 的 UIView。实际上,它是一个带有许多过滤器的右侧滑动条,可以在全屏地图上显示或不显示标记。在这个滑动栏中,我有一个多选列表。动画的目的是,当我点击多选时,列表会向下滑动,视图也会滚动。为了避免多选列表出现在过滤器的前台
标签: ios uiview uiscrollview constraints autolayout