由于autolayout,uiscrollview不会滚动

时间:2013-08-21 14:24:38

标签: ios uiview uiscrollview constraints autolayout

嗯,我知道我的问题已经有很多答案,但我已经测试了其中的每一个,但我仍然遇到了问题。 我有一个包含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]];

有人可以解释我为什么不起作用?

2 个答案:

答案 0 :(得分:7)

尝试设置scrollView的内容大小int“viewDidLayoutSubviews”方法,同时保持自动布局设置。

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

答案 1 :(得分:0)

我刚刚回答了类似的问题。 https://stackoverflow.com/a/18404262/390665 您可以在该答案中找到详细的滚动视图和NSLayoutConstraints说明。