我正在开发我的第一个 iOS 应用程序,我对大小调整和布局的工作方式感到有点困惑(或者,就我而言,没有)。我觉得我想做的事情(或者应该)非常简单,但我尝试的一切都没有达到预期的结果。
在我的初始 View Controller 中,我有一个 UIScrollView
:
以编程方式,我使用 .addSubView
添加从 XIB 加载的 subview :
var frame = scrollView.bounds
frame.origin.x = 0.0
frame.origin.y = 0.0
let view = pages[page] // pages[page] is UIView loaded from XIB
view.contentMode = .ScaleAspectFit
view.frame = frame
scrollView.addSubview(view)
现在进入 XIB(我将 View 从“推断”更改为“自由形式”尺寸,只是为了获取此屏幕截图):
三个角有标签,我希望它们对齐,以便它们始终位于这些角,并且居中的文本保持居中。但是,当我运行它时,事物被放置在相同的旧无聊位置(我添加了背景,以便您可以看到问题):
我尝试过(不成功):
- 使用约束来定位元素(似乎没有做任何事情,让我相信问题出在 subview 的大小上
- 设置 subview 的各种大小和布局属性
我的截止日期很紧,所以我更喜欢一种不太复杂的方法,但最终我希望有扎实的基础知识并真正知道这里发生了什么。我的问题是多部分的(但相关):
- 鉴于我缺乏经验,约束是定位 View 元素以便它们左对齐、右对齐、居中对齐等的最佳方式吗?
- 我需要做什么才能使
UIScrollView
中的 subview 大小正确? - 如果屏幕方向发生变化,我需要执行任何特殊操作来重新布局吗?
任何建议都会有帮助:具体的技术、教程、适当的文档(我一直在阅读文档,但这是一片大森林,我感觉有点迷失)。
这是一个让 iOS 奇才大放异彩的好机会!
最佳答案
我认为这个问题的答案可能对您有帮助 - iOS Autolayout with UIScrollview: Why does content view of scroll view not fill the scroll view?
“contentView 和它的父 View (scrollView)之间的约束是scrollView 的contentSize,而不是它的frame”
关于ios - iOS 中简单动态布局入门 (Xcode 6/Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539043/