内容超出了 ViewController 视图,如何通过滚动在屏幕上显示冗长的内容?
Posted
技术标签:
【中文标题】内容超出了 ViewController 视图,如何通过滚动在屏幕上显示冗长的内容?【英文标题】:The content exceeds the ViewController view, How could i show my lengthy contents in screen by scrolling? 【发布时间】:2017-06-26 10:36:53 【问题描述】:我有更多超过 ViewController 高度的内容行,我想通过滚动在同一屏幕上显示它。有什么方法可以实现吗?
【问题讨论】:
【参考方案1】:使用UIScrollView
并将您的内容放入其中。
【讨论】:
【参考方案2】:您也可以使用 UIScrollView 或 UITableView。
将所有视图添加为一个超级视图的子视图,比如 containerView。添加 containerView 作为 UIScrollView 的子视图。不要忘记为 UIScrollView 设置适当的内容大小。您可以通过适当的自动布局或以编程方式完成它
CGRect contentRect = CGRectZero;
for (UIView *view in self.scrollView.subviews)
contentRect = CGRectUnion(contentRect, view.frame);
self.scrollView.contentSize = contentRect.size;
您还可以将 UITableViewController 与静态单元格一起使用。您可以在静态单元格中添加视图,一切顺利。 UITableViewController 本身管理滚动。
希望对您有所帮助。快乐编码!
【讨论】:
【参考方案3】:您可以使用 UIScrollView (正如 @luckyShubhra 和 @chedabo 建议的那样),在这种情况下,您可以在 Storyboard 中正确设置 UI,并拥有 UIScrollView 的内容大小设置为 UIScrollView 中包含的 viewController 的大小...
还有 UITableView (正如@luckyShubhra 建议的那样)...如果您的数据设置为作为 NSString 或对象列表处理,这可以很好地工作...
如果内容是 NSString,并且您将使用 UILabel,我建议将其更改为 UITextView... 这也可以滚动。如果内容不被编辑,只需将 Selectable 和 Editable 布尔值更改为 false ...
【讨论】:
【参考方案4】:UIScrollView 甚至 UITextView 也可以提供帮助。如果是 html,可以考虑用 UIWebView 渲染。
只要确保控件高度小于视图控制器,它就会以可滚动的方式呈现内容。
【讨论】:
以上是关于内容超出了 ViewController 视图,如何通过滚动在屏幕上显示冗长的内容?的主要内容,如果未能解决你的问题,请参考以下文章
如何用另一个视图填充主 ViewController 上的 UIView?