2016-04-06 16 views
0

フレームなしで開始されるので、中心とサイズが0のボックスがあります。フレームなしで自動レイアウトを使用する

let blackBox = UIView() 
blackBox.backgroundColor = .blackColor() 
blackBox.translatesAutoresizingMaskIntoConstraints = false 
view.addSubview(blackBox) 
view.addConstraint(NSLayoutConstraint(item: blackBox, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 0.1, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blackBox, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 0.5, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blackBox, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blackBox, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0)) 

自動レイアウトを使用してずにblackBoxに中心サブビューを挿入するとにかくはありますか私は/それを使用する必要があります可能性がすっきり方法があります。私はこの出来事を見ることができる唯一の方法は次のとおりです。私は個人的にvar bluebox = UIView(frame: CGRECT)を使用することになり、それに応じCGRectを設定

let blueBox = UIView() 
blackBox.addSubview(blueBox) 
blueBox.translatesAutoresizingMaskIntoConstraints = false 
blueBox.backgroundColor = UIColor.blueColor() 
view.addConstraint(NSLayoutConstraint(item: blueBox, attribute: .CenterX, relatedBy: .Equal, toItem: blackBox, attribute: .CenterX, multiplier: 1, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blueBox, attribute: .CenterY, relatedBy: .Equal, toItem: blackBox, attribute: .CenterY, multiplier: 1, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blueBox, attribute: .Width, relatedBy: .Equal, toItem: blackBox, attribute: .Width, multiplier: 0.4, constant: 0)) 
view.addConstraint(NSLayoutConstraint(item: blueBox, attribute: .Height, relatedBy: .Equal, toItem: blackBox, attribute: .Height, multiplier: 0.4, constant: 0)) 
+0

なぜ自動レイアウトを使用しないのですか? – jtbandes

+0

あなたが表示するコード/アプローチに何が問題になっていますか? – Wain

+0

サブビューをblackBoxに追加し、フレームを 'layoutSubviews'で設定することができます。 – Eendje

答えて

関連する問題