-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AutoLayout 和 UIStackView #104
Comments
参考
|
Layout Process(约束、布局和绘制)1. Main runloop 和 update cycle2. 约束、布局和绘制在使用 Autolayout 时,iOS View 的布局和绘制包括三步:更新约束、计算布局和绘制内容,后两步都是依赖于其前面的一步。
(图片来源:https://i.stack.imgur.com/i9YuN.png) 3. 自定义 UIView 子类实现一个支持 Autolayout 的自定义 UIView 子类时,需要考虑以下几个问题:
3.1
|
AutoLayout 和 Masonry 的使用指南1. priority 什么时候使用几种不同的
UILayoutPriority 是什么呢?Apple 官方文档是这样解释的:
UIView 有一个 priority 属性,这个属性是干嘛的呢:
意思就是说,当一个 View 在同一个维度上,有多个约束时,系统在布局时会根据 UIView 上各个约束的优先级来处理,优先满足优先级高的。 下面的案例是 Masonry 官方给出的例子,这个
2. 添加、更新约束
3. 保存约束、更新约束
4. 动画先修改约束,然后再在 UIView 的 animation 方法的 block 中调用 layoutIfNeeded 方法:
5. 两个相邻
|
Self-sizing Table View Cells(使用 AutoLayout 自动计算 cell 高度)For iOS 8+:第一步:将 table view 的 tableView.estimatedRowHeight = 85.0
tableView.rowHeight = UITableViewAutomaticDimension 第二步:创建自定义 cell,添加 subviews 到 content view 上,设置 subviews 与 content view 在竖直方向上的约束,保证 content view 在竖直方向上从顶部到底部的约束是连续的。如果有根据内容自适应的 subview(比如 UILabel),系统会自动使用这些自动计算的高度值。
For system version prior to iOS 7,see references below.延伸阅读 |
FAQ1.
|
UIStackView
如何自定义 spacing?iOS 11 以后可以使用 |
No description provided.
The text was updated successfully, but these errors were encountered: