【发布时间】:2017-02-02 18:24:05
【问题描述】:
我在 Xcode Swift 游乐场中使用 UIViewController 子类。控制器的视图显然报告为双倍大小。是我做错了什么还是我偶然发现了一个错误?
当我将一半宽度的黄色子视图放入视图时,它会覆盖整个宽度。
Xcode 版本 8.2.1 (8C1002)
import UIKit
import PlaygroundSupport
class ViewController : UIViewController {
override func viewDidLoad() {
title = "Double Frame"
super.viewDidLoad()
view.frame // inspecting the frame size: 768 x 1024
let halfV = UIView(frame: CGRect(x: 0, y: 200,
width: Int(view.frame.width / 2),
height: Int(view.frame.width / 2)))
halfV.backgroundColor = UIColor.yellow
view.addSubview(halfV)
}
}
PlaygroundPage.current.liveView = UINavigationController(rootViewController: ViewController())
【问题讨论】:
-
在调用
viewDidLoad之后的某个时间,您的视图控制器的视图正在调整大小。您需要使用约束/自动调整掩码/其他一些方法来调整黄色的大小,这些方法会在超级视图调整大小时调整它的大小。
标签: ios xcode uiviewcontroller swift-playground viewdidload