内容超出了 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 视图,如何通过滚动在屏幕上显示冗长的内容?的主要内容,如果未能解决你的问题,请参考以下文章

在ios中如果按钮的位置超出父视图无法响应.如何处理?

如何用另一个视图填充主 ViewController 上的 UIView?

SwiftUI任意继承层级中视图被裁剪显示不全的解决方案

SwiftUI任意继承层级中视图被裁剪显示不全的解决方案

Translucent Modal ViewController - 如何处理旋转

如何为 Swift 3 创建第一个视图