使用.center
當您添加子視圖將在大多數情況下工作,但如果屏幕是不斷旋轉或父母的視圖邊界的變化將不起作用。
如果您使用自動佈局,系統會爲您處理所有這些事情,並且您可以用相對的術語描述整個佈局,以便它可以在任何方向上以任何屏幕尺寸工作。
//: Playground - noun: a place where people can play
import UIKit
import PlaygroundSupport
let parentView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 320.0, height: 320.0))
parentView.backgroundColor = .white
PlaygroundPage.current.liveView = parentView
let label = UILabel()
label.text = "Center"
label.translatesAutoresizingMaskIntoConstraints = false
parentView.addSubview(label)
label.centerXAnchor.constraint(equalTo: parentView.centerXAnchor).isActive = true
label.centerYAnchor.constraint(equalTo: parentView.centerYAnchor).isActive = true
您是否試過用label.frame(...)給它一個特定的位置?爲什麼你需要dispatchQueue for sizeToFit()? –
是的,我試過了。那麼,不使用DispatchQueue使sizeToFit()不起作用。 – user7861999
顯然,將'label.center = view.center'放在DispatchQueue中解決了問題 – user7861999