如何使视图控制器可滚动?
Posted
技术标签:
【中文标题】如何使视图控制器可滚动?【英文标题】:How to make a view controller scrollable? 【发布时间】:2012-07-27 11:28:27 【问题描述】:我有一个视图控制器,我在它上面解析来自服务器的数据并在屏幕上显示一篇文章。现在文章可以有从 10 个字符到 10000 个字符的任何大小。所以我需要使整个视图控制器可滚动到用户,这样他就可以滚动浏览整篇文章。我怎样才能做到这一点?只能通过IB完成吗?在我的视图控制器上,我有图像和标签来显示文章数据。
或者也许更容易只制作我保持主要文章文本可滚动的标签而不是整个控制器?
【问题讨论】:
我会使用UIScrollView
。 (你必须更具体。)
我认为,如果您添加 UITextView,它会在文本超出屏幕实际大小时自动启用滚动。我会考虑使用 UIWebViews 来解决文本格式问题。
我在屏幕上有一个图像,标签上有标题和副标题(大小是预定义的),并且在该标签下有一个保留文章正文的标签。这个正文可以来自 100 个适合屏幕的字符或 10000 个不适合屏幕的字符。所以我希望能够滚动浏览该标签。
【参考方案1】:
你必须通过你自己的类扩展 UIScrollView 或者可以分配/初始化它。
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size. height)];
scrollView.backgroundColor = [UIColor clearColor];
[scrollView addSubview:otherView];
scrollView.contentSize = scrollView.frame.size;
[self.view addSubview:scrollView];
之后,您必须将视图添加到滚动视图并正确设置contentSize
【讨论】:
为什么这样:scrollView.contentSize = scrollView.frame.size;
?
因为在添加第二个视图后根据 if-else 原则添加了第二个视图,所以我再次更改了 contentSize。但是您的问题足以改变它,谢谢。
获取您想要在屏幕上显示的图像和文本。创建一个图像视图并附加图像并创建一个文本视图并设置要显示的文本。将这些新创建的 imageview 和 textview 作为子视图添加到新视图(如果您以前没有做过,则创建新视图),然后将新视图添加为滚动视图的子视图。通过这样做,您可以滚动文章。如果需要滚动,需要设置scrollview的contentSize。以上是关于如何使视图控制器可滚动?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Objective-C 以编程方式使我的 UIView 可水平滚动?
使 splitViewController 的细节部分可滚动?
Swift:如何使滚动视图执行子视图控制器 viewDidLoad