2

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

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

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

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

scrollView.contentSize=CGSizeMake(320,1000);

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

我怎样才能摆脱它?

请告诉我出了什么问题或我错过了什么?

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

在增加内容大小之前: 在此处输入图像描述

滚动增加内容大小后出现以下效果: 在此处输入图像描述

4

4 回答 4

0

最后.......

问题是滚动视图增加了滚动视图指示器的宽度,该指示器在滚动时显示在屏幕上。您有两种选择来摆脱这种情况。

  1. 禁用导致问题的垂直或水平指示器,但这可能会导致滚动视图内容大小出现问题,在我的情况下它会导致最后一个单元格未被查看。

2.让它出现,但通过以下代码片段使其脱离屏幕。

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

这是完美的工作,但滚动指示器消失了屏幕。

于 2012-11-08T09:59:47.710 回答
0

在这一行:

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

您正在将滚动视图的 contentsize 高度设置为scrollView.frame.origin.y+120. 意思是,如果您的滚动视图的框架是 x=40,y=40,宽度 = 500,高度 = 500。那么 scrollView.frame.origin.y+120 将等于 40 + 120 = 160。这小于您的滚动视图的高度。所以你的滚动视图不会向上或向下滚动。

在第二行:

scrollView.contentSize=CGSizeMake(320,1000);

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

于 2012-11-08T08:27:39.430 回答
0

选择 Scroll View 并查看其 Size Inspector 窗口。观察它的大小是 320 , 713 点(在我的例子中)。如果您没有看到与我相同的尺寸,这是调整尺寸以使其与我的相同的好时机。您将需要在代码中使用此值

(void)viewDidLoad {
scrollView.frame = CGRectMake(0, 0, 320, 460);
[scrollView setContentSize:CGSizeMake(320, 713)];
 [super viewDidLoad];
}
于 2012-11-08T08:15:49.407 回答
0

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

内容大小必须大于滚动视图的框架大小以进行滚动

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

scrollView.contentSize=CGSizeMake(320,scrollView.frame.size.height+120);
于 2012-11-08T08:22:27.733 回答