滚动视图无法运行IOS 7

时间:2013-12-10 18:51:19

标签: iphone uiscrollview ios7

我有一个scrollview,里面有20个UItextviews。 scrollview无法正常工作。我在viewdidload中设置了以下内容。

self.MainScroll.contentSize = CGSizeMake(320, 1800);

仍然不滚动。但是,如果我垂直弹跳,它就会反弹。我的scrollview是尺寸为320 * 600的主UIview的子代。请指导如何启用滚动!!

2 个答案:

答案 0 :(得分:102)

有两种方法可以让滚动工作。

方法1(带代码):

1)将UIScrollView固定到其父视图的两侧,如下所述。

enter image description here

2)在viewDidLayoutSubviews

中设置滚动视图的内容大小
- (void)viewDidLayoutSubviews {
    self.MainScroll.contentSize = CGSizeMake(320, 1800);
}

方法2(纯IB,无需代码):

1)如果使用contentSize,则不需要设置AutoLayout。您需要将UIScrollView固定到父视图,如下所述:

enter image description here

2)然后在UIScrollView中添加另一个UIView作为内容视图并将其固定到UIScrollView并移动此内容视图中的所有控件:

enter image description here

3)将内容视图固定到其父滚动视图,如下所述:

enter image description here

4)将你的UIViewController的模拟指标设置为自由形式(这很重要):

enter image description here

5)将您的内容UIView调整到所需的高度(显然也很重要):

enter image description here

  

解释UIScrollView和AutoLayouts的Apple文章:   https://developer.apple.com/library/content/technotes/tn2154/_index.html

答案 1 :(得分:-1)

延迟一段时间后更新内容大小,如下所示。

- (void)viewDidLayoutSubviews {
    [self performSelector:@selector(updateContentSize)
               withObject:nil
               afterDelay:0.25];

}

-(void)updateContentSize{
    UIView *viewLast = [viewContent viewWithTag:100];
    scrollViewAd.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, CGRectGetMaxY(viewLast.frame));
}