2

我有一个问题,我将 UIScrollview 添加到我的 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];

在这里,我将我的内容添加到滚动视图:

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];
4

5 回答 5

2

尝试这个

将内容大小设置为大于屏幕大小,无论是否有更多内容都会滚动

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

水平滚动

 scroll.contentSize = CGSizeMake(320, 900);

垂直滚动

scroll.contentSize = CGSizeMake(340, 800);
于 2013-06-17T05:30:23.170 回答
1

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

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

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds];
于 2013-06-17T03:37:10.143 回答
0

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

scroll.contentSize = CGSizeMake(1000, 800);

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

于 2013-06-17T03:00:06.483 回答
0

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

滚动视图需要包含一个大于其自身大小的视图。

于 2013-06-16T09:21:57.337 回答
0

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

祝你好运!

于 2013-06-17T05:49:55.407 回答