我正在使用 Xcode 8.2、Swift 3。
我正在尝试以编程方式创建一个 UIViewController
,其中包含屏幕上的一些文本(以及将来的一些图形)内容。通常,使用 Storyboard 很容易做到这一点,但由于此 ViewController 是通过编程方式创建的,因此我必须像这样工作。
到目前为止,这是我的代码:
let detailViewController = UIViewController()
detailViewController.view.backgroundColor = UIColor.white
let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
let titleLabel = UILabel(frame: CGRect(x: 20, y: 20, width: screenWidth, height: 20))
titleLabel.center = CGPoint(x: screenWidth / 2, y: 100)
titleLabel.backgroundColor = UIColor.red
titleLabel.textAlignment = .center
titleLabel.text = "Scan Results"
titleLabel.font = UIFont.boldSystemFont(ofSize: 14)
let myField: UITextView = UITextView (frame: CGRect(x: 50, y: 50, width: screenWidth, height: 300))
myField.center = CGPoint(x: screenWidth / 2, y: 250)
myField.backgroundColor = UIColor.green
myField.text = <really long string here>
detailViewController.view.addSubview(titleLabel)
detailViewController.view.addSubview(myField)
这是我看到的:
这给我带来了很多问题,因为我试图了解这种布局的工作原理,但似乎找不到任何对我有意义的帮助。
我的 screenWidth
和 screenHeight
分别是 375 和 667。我使用的是 iPhone 7。我将 titleLabel
置于中心,但位于 y: 100
。但是考虑到屏幕的高度为 667,标签结束的地方显然看起来不像向下的 1/6。
那么文本定位究竟是如何工作的呢?我知道左上角是原点,仅此而已。
此外,我的文本字段从 x: 50, y: 50
开始,宽度为 screenWidth
。那么为什么文本会溢出页面的一侧而不是环绕呢?
非常感谢您的帮助。
最佳答案
我认为如果你正在设置不同 View 的框架(通过构造函数或其他方式),不要设置 .center
,它会影响它的 x 和 y 位置因此为什么他们的定位关闭
关于ios - iOS 屏幕几何布局是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42239919/