在IB中拖出一个UIView
@IBOutlet weak var myView: UIView!
下面创建的UILabel是在myView中居中显示
方法1:
var label = UILabel()
label.text = "你好,朋友!"
label.backgroundColor = UIColor.blueColor()
label.sizeToFit()
label.center = CGPointMake(CGRectGetMidX(myView.bounds), CGRectGetMidY(myView.bounds))
myView.addSubview(label)
方法2:
var label = UILabel()
label.text = "你好,朋友!"
label.backgroundColor = UIColor.blueColor()
label.sizeToFit()
label.center = myView.convertPoint(myView.center, fromView: myView.superview)
myView.addSubview(label)
注意:以上方法中第四行代码label.sizeToFit()务必写到第五行代码之前执行,否则将不会居中显示
方法3:
通过VFL布局约束的方式
func setAlignCenter(subView: UIView,superView:UIView) {
subView.setTranslatesAutoresizingMaskIntoConstraints(false)
var dic = ["superView":superView, "subView":subView]
superView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat(
"V:[superView]-(<=0)-[subView]",
options: NSLayoutFormatOptions.AlignAllCenterX,
metrics: nil,
views: dic))
superView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat(
"H:[superView]-(<=0)-[subView]",
options: NSLayoutFormatOptions.AlignAllCenterY,
metrics: nil,
views: dic))
}