[Android開發學iOS系列] 快速上手UIKit( 二 )


[Android開發學iOS系列] 快速上手UIKit

文章插圖
這里可以看到UILabelUIButton雖然都繼承了UIView, 但是UIButton的繼承層次更深一些, 它還繼承了了UIControl.
可以看到和UIButton平級的還有好幾個子類.
Controls使用的是target-action機制, 所有的action都通過方法: addTarget(_:action:for:) 添加.
約束Constraints當在代碼中設置約束時, 有三種選擇:
  • 使用layout anchors.
  • 使用NSLayoutConstraint類.
  • 使用Visual Format Language.
上面我們提到過的就是其中Layout Anchors的寫法:
初級單個寫法:
buttonsView.topAnchor.constraint(equalTo: view.centerYAnchor).isActive = truebuttonsView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = truebuttonsView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = truebuttonsView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true放進數組里批量激活寫法:
NSLayoutConstraint.activate([buttonsView.topAnchor.constraint(equalTo: view.centerYAnchor),buttonsView.bottomAnchor.constraint(equalTo: view.bottomAnchor),buttonsView.leadingAnchor.constraint(equalTo: view.leadingAnchor),buttonsView.trailingAnchor.constraint(equalTo: view.trailingAnchor),])感覺是對新手比較直觀的一種寫法.
其他寫法文末有參考文檔.
PS: 項目中更流行用 SnapKit.
區域限制
  • safeAreaLayoutGuide : 去掉圓角和劉海.
  • layoutMarginsGuide : safe area的內部再加上一些額外的margin.
Bonus
  • 友情提示: 在xcode里就可以看官方文檔, 快捷鍵是Cmd + Shift + 0.
References
  • UIKit Documentation
  • UIKit Catalog
  • https://codewithchris.com/swift-tutorial-complete/#uikit
  • Programmatically Creating Constraints

推薦閱讀