IOS中的滚动问题

时间:2012-11-08 07:55:33

标签: ios uiscrollview contentsize

如果我使用动态变量设置,则滚动视图未设置内容大小,即

scrollView.contentSize=CGSizeMake(320,scrollView.frame.origin.y+120);

调用上述方法后滚动视图大小保持不变。

但是,如果我使用数字(整数或浮点数)设置它会改变,但它会对滚动产生非常奇怪的影响。附上效果图片。

scrollView.contentSize=CGSizeMake(320,1000);

这不允许我发布图像,无论如何都会出现奇怪的效果。

我怎么能摆脱它?

请告诉我哪里出错或我错过了什么?

现在我已经跑到11,这里给出了效果图像。

在增加内容大小之前: enter image description here

在滚动后增加内容大小后出现以下效果: enter image description here

4 个答案:

答案 0 :(得分:0)

选择“滚动视图”并查看其“大小检查器”窗口。观察它的大小是320,713点(在我的情况下)。如果你没有看到相同的 像我一样大小,这是调整大小的好时机,以便它与我的相同。你会 需要在代码中使用此值

(void)viewDidLoad {
scrollView.frame = CGRectMake(0, 0, 320, 460);
[scrollView setContentSize:CGSizeMake(320, 713)];
 [super viewDidLoad];
}

答案 1 :(得分:0)

我认为你应该使用frame.height来实现你的目标

内容大小必须大于滚动视图的帧大小

并且您正在使用滚动视图的y原点,因此可能是问题所在。

scrollView.contentSize=CGSizeMake(320,scrollView.frame.size.height+120);

答案 2 :(得分:0)

在这一行:

scrollView.contentSize=CGSizeMake(320,scrollView.frame.origin.y+120);

您正在将滚动视图的内容大小设置为scrollView.frame.origin.y+120。 意味着,如果你的滚动视图的框架是x = 40,y = 40,宽度= 500,高度= 500.那么scrollView.frame.origin.y + 120将等于40 + 120 = 160.这比你的小scrollview的高度。因此,您的滚动视图不会向上或向下滚动。

在第二行:

scrollView.contentSize=CGSizeMake(320,1000);

滚动视图的内容大小高度为1000.这大于滚动视图的高度,因此它会向上和向下滚动。

答案 3 :(得分:0)

最后.......

问题是滚动视图增加滚动视图指示器的宽度,滚动时显示在screnn上。你有两种方法可以解决这个问题。

  1. 禁用导致问题的垂直或水平指示器,但这可能会导致滚动视图内容大小出现问题,在我的情况下导致问题,最后一个单元格未被查看。
  2. 2.让它显示但是通过以下代码片段将其从屏幕中删除。

        [myScrollView setScrollIndicatorInsets:UIEdgeInsetsMake(0.0, 0.0, 0, 320.0)];
    

    这完美地工作但滚动指示器已经不在屏幕上了。