我有一个问题,我将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];
答案 0 :(得分:2)
试试这个
设置内容大小超过屏幕大小,它会滚动是否有更多内容
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 800)];
<强> HorizontalScroll 强>
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
?尝试将上一行移至viewWillAppear
或viewDidLayoutSubviews
。
答案 4 :(得分:0)
框架是指滚动视图本身的大小,而内容大小是要在滚动视图中显示的视图的大小。如果要在滚动视图中显示的视图大小小于滚动视图框架大小,则它根本不会滚动,但如果您设置的内容大小更多,则滚动视图必须滚动以显示“额外”大小超过自己的框架大小。 例如如果滚动视图的高度为100,并且您已将内容大小中的高度因子设置为150,那么这些额外的50个像素将可滚动。
祝你好运!