iOS 布局用 Frame 用 AutoLayout (Masonry)?

2019-06-21 11:31:58 +08:00
 353943780

最近公司的 iOS 工程师吵架差不多要打起来了,一边支持主要 Frame 布局,一边支持主要 AutoLayout (Masonry) 布局。

Frame 支持的观点是: AutoLayout 最终也是通过 frame,而且项目只需要兼容 iPhone,机型不多情况下使用 Frame 编程效率比较高。

AutoLayout 支持的观点是: Frame 布局,一连串数字加起来可读性有点差,维护麻烦。

我是 iOS 新人,请问大大主要使用哪种比较靠谱,避免少踩坑?

5809 次点击
所在节点    iOS
57 条回复
kera0a
2019-06-21 11:40:13 +08:00
最终都是 Frame,那为啥不用 Masonry 呀?
开发效率,易用性,功能,可读性都完爆 Frame 了吧。
Frame 在特定场景下有用,通常情况还是用 Masonry 吧

第一个人适合用机器码写 iOS 程序,反正最后 objc 都是机器码😄
nigulasida
2019-06-21 11:43:28 +08:00
AutoLayout
353943780
2019-06-21 11:45:14 +08:00
@kera0a 那位工程师说中间过程会有运算的损耗,用 frame 最直接直观 :(
CommandZi
2019-06-21 11:46:10 +08:00
当然是 AutoLayout,后面还会转向 SwiftUI,Frame 真的 out 了
Heavytiger
2019-06-21 11:47:35 +08:00
都用
ai277014717
2019-06-21 12:04:47 +08:00
跟团队的大方向走。autolayout 也可以写的很烂。frame 一般来说都要根据屏幕宽度动态计算。autolayout 却不用。autolayout 滥用会导致性能问题。详细可以看看 wwdc 高性能 autolayout
zenghaojim33
2019-06-21 12:12:12 +08:00
这确定不是 2014 年的帖子吗...
MrStark
2019-06-21 12:14:34 +08:00
现在居然还有 iOS 新人,也是不容易了。话说,现在入手 iOS 不应该是从 Swift 入手的么,ObjC 已经是二等公民了。
MrStark
2019-06-21 12:15:38 +08:00
@kera0a #1 无论用什么,反正最后都是 0 和 1,哈哈
loveuqian
2019-06-21 12:17:51 +08:00
能做到任意列表点击状态栏滚到顶部保持 fps55 以上,都不算影响效率
Paryace
2019-06-21 12:33:03 +08:00
仿佛回到了五年前....现在还有讨论这个的?
现在的设备 99%的情况下抠不出来这点性能区别。开发效率优先,真的要优化也是出现性能瓶颈时优化。
faimin
2019-06-21 12:47:30 +08:00
一起用呗,干嘛定那么死。简单页面 autolayout,复杂的用 frame. 做复杂动画的用 frame
353943780
2019-06-21 12:48:49 +08:00
@MrStark T_T 公司项目用 OC,不用 Swift,他们说用了体积会变大,而且编译慢,生态也一般
SeanChense
2019-06-21 13:00:05 +08:00
frame

> AutoLayout 支持的观点是:Frame 布局,一连串数字加起来可读性有点差,维护麻烦。

这个观点太逞强了
SeanChense
2019-06-21 13:00:23 +08:00
逞强 --> 勉强
hstdt
2019-06-21 13:02:27 +08:00
苹果一直在优化 autolayout 的性能,这里一般不会成为瓶颈的,用吧没事。或者用 stackview 取代一部分 autolayout
xjbeta
2019-06-21 13:02:46 +08:00
把他们都打一顿 然后上 SwiftUI (狗头
yeziahehe
2019-06-21 13:24:01 +08:00
我建议你们公司 iOS 换一批人,9012 了,还不接受 autolayout、swift
shawndev
2019-06-21 13:27:52 +08:00
建议使用机器码编程,运行效率高,而且反正 swift、objc 最终都会转换成机器码。
zenghaojim33
2019-06-21 13:30:22 +08:00
@353943780 Swift 生态一般?能用的库已经一大堆了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/576133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX