使用 2 个自定义视图将 ScrollView 添加到 ViewController

Posted

技术标签:

【中文标题】使用 2 个自定义视图将 ScrollView 添加到 ViewController【英文标题】:Adding ScrollView to ViewController with 2 custom Views 【发布时间】:2017-03-20 21:40:59 【问题描述】:

My viewController has one view with images and labels and one textView

我是目标 c 的新手。 我的问题是在我的 ViewController 中添加带有 2 个自定义视图(UIView 和 UITextView)的 ScrollView。(链接中的图像)我已经尝试了很多东西在 Stack 中发布,但对我没有任何作用。 谢谢!

这是我所拥有的:

self.scrollView.contentSize=self.scrollView.frame.size;
self.scrollView.frame=self.view.frame;
[self.view addSubview:self.scrollView];

【问题讨论】:

【参考方案1】:

调整视图的框架是5年前的技术。您永远不应该手动设置框架,不再是。而是开始学习自动布局和约束。 这些教程可能会有所帮助:

https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2 https://www.appcoda.com/auto-layout-guide/

【讨论】:

是的,这对我有帮助。谢谢 ! :)【参考方案2】:

在实际设置框架之前,您将内容大小设置为等于框架大小,所以它可能只是 0。

您只需切换呼叫:

self.scrollView.frame=self.view.frame;
self.scrollView.contentSize=self.scrollView.frame.size;
[self.view addSubview:self.scrollView];

要记住的另一件事是,因为您将嵌套视图的框架设置为其父视图的框架,如果您的父视图的来源是永远改变。如果原点是0, 0,那么您暂时可以,但否则您可能希望将子视图(scrollView)框架设置为等于父视图(self.view)边界而不是框架,如下所示:

self.scrollView.frame=self.view.bounds

【讨论】:

以上是关于使用 2 个自定义视图将 ScrollView 添加到 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

向 UIScrollView 添加多个子视图

IOS 为啥一个视图有2个自定义类?

如何在StoryBoardxib上使用AutoLayout+ScrollView

SWIFT:表格视图中的 2 个自定义单元格。怎么了?

具有 3 个自定义视图和动态高度的 UITableView

将自定义视图放入自定义 ScrollView