[Android开发学iOS系列] 快速上手UIKit( 二 )

.actionSheet两种.
.alert是中心的对话框, 一般用于信息提示或者确认操作; .actionSheet是底部的bottom sheet, 一般用来在几个选项中做选择.
其他

  • view中比较常用的属性isHidden, 控制view是否需要隐藏.
  • 所有的UIView都有一个layer属性.设置border的宽度和颜色就在layer上设置.CALayer在UIView之下. 所以不知道UIColor, 只知道CGColor.
本文仅列出几个常用组件, 更多的请看官方示例.
这里可以下载
继承关系NSObject是所有Cocoa Touch class的基类. 所有UIKit中的类都是它的子类.
这里有一个类关系的图:
[Android开发学iOS系列] 快速上手UIKit

文章插图
我们这里不展开讲述所有了, 只解答一下前面提出的关于UILabel点击事件的问题.
[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

经验总结扩展阅读