UIScrollview不滚动我做错了什么

时间:2013-06-16 09:06:33

标签: uiscrollview

我有一个问题,我将UIScrolview添加到我的UIViewController,但我的UIScrollview不想滚动。我希望它的工作方式与它在UITableViewController上的工作方式相同。

这里我初始化我的UIScrollview

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 800)];
scroll.contentSize = CGSizeMake(320, 800);
scroll.backgroundColor = [UIColor redColor];
scroll.showsHorizontalScrollIndicator = YES;
scroll.scrollEnabled = YES;
scroll.userInteractionEnabled=YES;
[self.view addSubview:scroll];

这里我将我的内容添加到scrollview:

UILabel *memberNo = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];
memberNo.text = @"Member No";
memberNo.font = [UIFont boldSystemFontOfSize:16];
memberNo.textColor = [UIColor limeColor];
[scroll addSubview:memberNo];

memberText = [[UITextField alloc] initWithFrame:CGRectMake(10, 40, 300, 30)];
memberText.placeholder = @"Member No";
memberText.borderStyle = UITextBorderStyleRoundedRect;
memberText.text = @"1111111";
[scroll addSubview:memberText];

5 个答案:

答案 0 :(得分:2)

试试这个

设置内容大小超过屏幕大小,它会滚动是否有更多内容

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 800)];

<强> Horizo​​ntalScroll

 scroll.contentSize = CGSizeMake(320, 900);

<强> VerticalScroll

scroll.contentSize = CGSizeMake(340, 800);

答案 1 :(得分:1)

正如其他人所说,滚动视图的大小(具体来说,它的bounds.size)必须小于其contentSize才能实际滚动。

您可能希望滚动视图适合其超视图,因此请尝试将其框架设置为超视图的边界:

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds];

答案 2 :(得分:0)

内容与滚动视图的大小相同:没有可滚动的内容。

scrollview需要包含一个比它自己的大小更大的视图。

答案 3 :(得分:0)

尝试将contentSize设置为大于框架。例如:

scroll.contentSize = CGSizeMake(1000, 800);

如果这不起作用,请检查您设置内容大小的位置。你在哪里初始化UIScrollView?尝试将上一行移至viewWillAppearviewDidLayoutSubviews

答案 4 :(得分:0)

滚动视图的

框架是指滚动视图本身的大小,而内容大小是要在滚动视图中显示的视图的大小。如果要在滚动视图中显示的视图大小小于滚动视图框架大小,则它根本不会滚动,但如果您设置的内容大小更多,则滚动视图必须滚动以显示“额外”大小超过自己的框架大小。 例如如果滚动视图的高度为100,并且您已将内容大小中的高度因子设置为150,那么这些额外的50个像素将可滚动。

祝你好运!