2017-02-16 3 views
0

私はsourcodeが見つかりました:Swift 3の構文AddConstraintWithFormat?

view.addConstraintsWithFormat("H:|[v0]|", views: menuBar) 
view.addConstraintsWithFormat("V:|[v0(50)]", views: menuBar) 

そして、私はスウィフト3を使用していますが、それは私のXcodeで8

を働いていない誰かが私にそのためのどのようなコードを伝えることはできますか?

ありがとうございました!それはあなたのために働くだろう

func addContraintsWithFormat(_ format: String, views: UIView...) { 
     var viewDict = [String: UIView]() 

     for (index, view) in views.enumerated() { 
      let key = "v\(index)" 
      view.translatesAutoresizingMaskIntoConstraints = false 
      viewDict[key] = view 
     } 

     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: format, options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: viewDict)) 
    } 

答えて

3

あなたはこのような関数を書く必要があります!

この機能を使用するにはVisual Format Languageが必要な場合があります。

+0

ビジュアルフォーマット言語を学ぶのに役立つリンク!! – iUser

-1

あなたは、これはあなたを助けるかないなら、私を知ってみましょうコード

let tempView = UIView() 
tempView.backgroundColor = UIColor.green 
tempView.translatesAutoresizingMaskIntoConstraints = false 
view.addSubview(tempView) 

let views = ["view": view, "tempView": tempView] 
let horizontalConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:[view]-(<=0)-[newView(100)]", options: NSLayoutFormatOptions.alignAllCenterY, metrics: nil, views: views) 
let verticalConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:[view]-(<=0)-[tempView(100)]", options: NSLayoutFormatOptions.alignAllCenterX, metrics: nil, views: views) 

view.addConstraints(horizontalConstraints) 
view.addConstraints(verticalConstraints) 

の下に使用することができます。

1

UIViewの拡張機能を記述する必要があります。次のようなものがあります。

extension UIView { 
    func addConstraintsWithFormat(_ format: String, views: UIView...) { 
     var viewsDictionary = [String: UIView]() 
     for (index, view) in views.enumerated() { 
      let key = "v\(index)" 
      view.translatesAutoresizingMaskIntoConstraints = false 
      viewsDictionary[key] = view 
     } 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: format, options: NSLayoutFormatOptions(), metrics: nil, views: viewsDictionary)) 
    } 
}