首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSLayoutAnchor不好吗?

使用NSLayoutAnchor不好吗?
EN

Stack Overflow用户
提问于 2018-09-11 02:54:11
回答 2查看 1.7K关注 0票数 2

我通常使用NSLayoutAnchor,但是很多次我都被建议不要使用它。除了更复杂/更长的代码之外,它是否存在性能下降等问题?

有人告诉我要用:

代码语言:javascript
复制
let myView = UIView(frame: CGRect(x: 0, y: 20, width: view.frame.bounds.width, height: 100))

而不是:

代码语言:javascript
复制
let myView = UIView()
myView.translatesAutoresizingMaskIntoConstraints = false
myView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
myView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
myView.topAnchor.constraint(equalTo: view.topAnchor, constant: 20).isActive = true
myView.heightAnchor.constraint(equalToConstant: 100).isActive = true
EN

回答 2

Stack Overflow用户

发布于 2018-09-11 03:03:04

使用框架的缺点是,一旦列出了框架,就需要在需要时手动更改它们。例如:方向改变,动画等等。但是如果你使用自动取景,你就会相对地定义视图的位置,这意味着,即使是在改变方向或动画的情况下,你的视图也会根据你设置的约束来调整自己的大小。

关于性能下降,自动收费表需要更多的时间(不是那么多)来计算视图的帧,但是这可以忽略不计,而且方便的方式掩盖了性能的影响。

最后,考虑到大多数视图都需要基于屏幕大小、方向变化等的动态定位,框架的用例将非常小。混合帧和自动输出绝不是一个好主意。

Tl;dr - Autolayout >帧。

票数 4
EN

Stack Overflow用户

发布于 2018-09-11 04:10:37

如果您担心复杂/冗长的代码,请尝试SnapKit。它让你爱上了自己的https://github.com/SnapKit/SnapKit

尽管如此,很多人倾向于认为AutoLayout和框架。但在现实中,你应该两者兼用。如果您的视图不会改变,并且需要快速交互,请使用框架。如果您希望您的视图具有可伸缩性并处理景观/纵向,请使用AutoLayout。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52268035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档