2017年3月10日 星期五

UIView


Closure 可以在你建立變數的時候,直接設定變數的屬性

原本是
let myView:UIView = UIView()
變成
let myView:UIView =
{
     let view = UIView()
     ( 直接設定view的屬性 )
     return view
}()

------------------------- Separate Line -------------------------

在 Xcode 裡,你要建立一個UIView,必須在viewDidLoad寫入下面這些程式碼
viewDidLoad()
{
     let myView = UIView()
     myView.backgroundColor = UIColor. blueColor()
     myView.translatesAutoresizingMaskInfoConstraints = false
     myView.layer.cornerRadius = 5
     myView.layer.masksToBounds = true
     view.addSubView(inputsContainerView)
     myView.centerXAnchor.constraint( equalTo:view.centerXAnchor ).isActive = true
     myView.centerYAnchor.constraint( equalTo:view.centerYAnchor ).isActive = true
     myView.widthAnchor.constraint( equalTo:view.widthAnchor , constant:-24 ).isActive      = true
     myView.heightAnchor.constraint( equalToConstant:150 ).isActive = true
}

如果用 Closure 的方式寫,你就可以把這些程式碼從 ViewDidLoad 裡除去

將下面程式碼寫在 viewDidLoad 外面
let myView:UIView = 
{
     let view = UIViiew()
     view.backgroundColor = UIColor. blueColor()
     view.translatesAutoresizingMaskInfoConstraints = false
     inputsContainerView.layer.cornerRadius = 5
     inputsContainerView.layer.masksToBounds = true
     return view
}()

func setupInputsContanerView()
{
     inputsContainerView.centerXAnchor.constraint( equalTo:view.centerXAnchor                ).isActive = true
     inputsContainerView.centerYAnchor.constraint( equalTo:view.centerYAnchor                ).isActive = true
     inputsContainerView.widthAnchor.constraint( equalTo:view.widthAnchor ,                      constant:-24 ).isActive = true
     inputsContainerView.heightAnchor.constraint( equalToConstant:150 ).isActive = true
}

最後你的 ViewDidLoad 最變成下面這樣
viewDidLoad()
{
    view.addSubView(inputsContainerView)
    setupInputsContainerView()
}

沒有留言:

張貼留言