我对 Swift 和 iOS 还很陌生。我正在努力让事情正常进行,所以请忽略糟糕的用户界面。目前我的文本超出了 Controller 的屏幕,我希望它能够根据文本的长度允许滚动以适应它。
我如何使用 Swift 和 iOS 做到这一点?
最佳答案
首先,您应该将所有 subview (UILabel、UIImage 等)放在UIScrollView
中。
那么,你有两个选择:
Springs & Struts:设置所有 subview 的框架后,您可以更新 ScrollView 的
contentSize
属性,以便它允许您滚动。您最好在viewDidAppear
方法中执行此操作,因为所有帧都在那里有它们的确切值:override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) scrollView.contentSize = CGSize(width: view.frame.width, height: bottomLabel.frame.maxY) }
AutoLayout:使用 Autolayout,您不再需要显式设置
contentSize
属性。只需确保正确设置垂直和宽度约束,这样 AutoLayout 就会自动推断出 contentSize。 scrollView 中的 subview 应按如下方式布局:Scroll View ---------------- | Top Label | | ------------ | v:10pt | | | Image | image.width = view.width | | | ------------ | v:10pt | Bottom Label | ----------------
您可以下载 test project并查看我在 Interface Builder 中设置的约束。
这是我得到的结果:
关于ios - 使 Controller 随着 iOS 中 UILabel 中文本的数量而扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272329/