如何创建 UIScrollView?

Posted

技术标签:

【中文标题】如何创建 UIScrollView?【英文标题】:How to create a UIScrollView? 【发布时间】:2011-03-09 07:41:40 【问题描述】:

我在 UIViewController 上有 4 个标签。现在我想知道如何使用 UIScrollView 将当前视图变为可滚动视图?

【问题讨论】:

【参考方案1】:

您必须在那里创建和添加这些标签。像这样的东西(警告:未经测试)

UIScrollView * content = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[content setContentSize:CGSizeMake(width, height)];
//Here you can add those labels to content view
[self.view addSubView:content];

要使滚动生效,您必须指定大于主视图大小的内容大小 (setContentSize:)。并且不要忘记释放滚动视图。

【讨论】:

在我的情况下,我有一个 UIViewController,我使用 xib 文件以编程方式创建。现在我已经使用 IB 和所有这些标签放置了一个滚动视图。 您可以随意添加标签。关键是将 UIScrollView 添加到控制器的视图中,并将其内容大小设置为大于主视图。 secondView = [[SecondView alloc] initWithNibName:@"second" bundle:nil]; //myScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; //[myScrollView setContentSize:CGSizeMake(400, 600)]; //[secondView.view addSubview:myScrollView]; [self.navigationController pushViewController:secondView 动画:YES];还是不行…… 使用控制器视图的大小[UIScrollView alloc] initWithFrame:secondView.bounds]; 如果你想通过Interface Builder添加标签,那么你应该在IB中添加ScrollView并设置它的size和contentSize属性。 secondView = [[SecondView alloc] initWithNibName:@"second" bundle:nil]; myScrollView = [[UIScrollView alloc] initWithFrame:secondView.bounds];发生错误:SecondView' 可能不响应'-bounds'【参考方案2】:

最简单的方法:

-(void)scrollview

    UIScrollView *scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(10, 10, 250, 150)];
    scrollview.showsVerticalScrollIndicator=YES;
    scrollview.scrollEnabled=YES;
    scrollview.userInteractionEnabled=YES;
    scrollview.backgroundColor = [UIColor greenColor];
    [mainScrollView addSubview:scrollview];
    scrollview.contentSize = CGSizeMake(250,150);

【讨论】:

以上是关于如何创建 UIScrollView?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过滑动向 UIScrollView 添加另一个页面?

UIScroll 及其嵌套元素

调整容器 uiscrollview 中所有 uiscrollview 的大小

滚动 UIScrollView 时如何缩放

UIScrollView 上的错误 UITapGestureRecognizer

如何使用 autoLayouts 动态增加 UIScrollView 的高度