如何UIView
使用 Auto Layout 和 Apple 的 Visual Format Language 设置尺寸和位置的宽度和高度?
这是代码(view
只是来自的变量UIViewController
):
// Create and add the view
var stageView = UIView()
stageView.setTranslatesAutoresizingMaskIntoConstraints(false) // Since I'm using Auto Layout I turn this off
view.addSubview(stageView)
// Create and add constraints to the containing view
let viewsDictionary = ["stageView":stageView]
let horizontalConstraints: NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|-150-[stageView]-150-|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary)
let verticalConstraints: NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:|-100-[stageView]-150-|", options: NSLayoutFormatOptions.AlignAllCenterX, metrics: nil, views: viewsDictionary)
view.addConstraints(horizontalConstraints)
view.addConstraints(verticalConstraints)
println("stageView.frame=\(stageView.frame)")
并得到:
stageView.frame=(0.0,0.0,0.0,0.0)
所以我尝试了:
let fittingSize = stageView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
println("fittingSize=\(fittingSize)")
并得到:
fittingSize=(0.0,0.0)
我似乎无法找到获得大小的方法。我可以stageView
使用自动布局和视觉格式语言将子视图添加到该位置,但我无法获得stageView
需要进一步定位这些子视图的宽度和高度。
有任何想法吗?