2016-11-11 20 views
1
func setupPosition() { 
     box.snp.makeConstraints{(make)->Void in 
     make.edges.equalTo(view).inset(UIEdgeInsetsMake(64+20, 20, 250, 20)) 
     } 

     textField.snp.makeConstraints{(make)->Void in 
      make.edges.equalTo(box).inset(UIEdgeInsetsMake(5, 5, 150, 5)) 

     } 

     stackBoxOne.snp.makeConstraints{(make)->Void in 
       make.top.equalTo(box).offset(textField.frame.size.height) 
       make.left.equalTo(box).offset(5) 
       make.bottom.equalTo(box).offset(-90) 
       make.right.equalTo(box).offset(-5) 
     } 
    } 

textFieldの下に入れたいと思います。しかし、上記のコードは動作していません。コードを変更するにはどうすればよいですか?あなたの時間を感謝します。スウィフトSnapKit相対位置でUIViewをレイアウトする方法

答えて

1

ビューがその時点でレイアウトされていないため、textField.framemakeConstraintsクロージャ内で使用することはできません。そのため、高さは0で、stackBoxOneは、オフセットが0になります。

別のビューの下にビューを配置するには、その上部の制約を他のビューの下部の制約に接続します。だからあなたの場合:

stackBoxOne.snp.makeConstraints{(make)->Void in 
    make.top.equalTo(textField.snp.bottom) 
    make.left.right.equalTo(textField) 
    make.bottom.equalTo(box).offset(-90) 
} 

stackBoxOne.snp.makeConstraints{(make)->Void in 
    make.top.equalTo(textField.snp.bottom) 
    make.left.equalTo(box).offset(5) 
    make.bottom.equalTo(box).offset(-90) 
    make.right.equalTo(box).offset(-5) 
} 

それに加えて、あなたはまた、このようなtextFields左右の制約に等しい左右の制約を設定することができます

関連する問題