【问题标题】:uiscrollview doesn't scroll because of autolayout由于自动布局,uiscrollview 不会滚动
【发布时间】: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


【解决方案1】:

尝试设置滚动视图的内容大小 int "viewDidLayoutSubviews" 方法并保持自动布局设置。

-(void)viewDidLayoutSubviews
{
  [self.itemList setContentSize:CGSizeMake(required_width, required_height)];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2013-08-03
    • 2015-04-16
    • 2016-04-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多