1

UIViewAuto Layout と Apple の Visual Format Language を使用して、who のサイズと位置が設定されている幅と高さを取得するにはどうすればよいですか?

コードは次のとおりです (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)

サイズを取得する方法が見つからないようです。stageViewAuto Layout と Visual Format Language を使用してその場所にサブビューを問題なく追加できますが、stageViewこれらのサブビューをさらに配置する必要がある幅と高さを取得できません。

何か案は?

4

2 に答える 2