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 新人,请问大大主要使用哪种比较靠谱,避免少踩坑?

5851 次点击
所在节点    iOS
57 条回复
MarginK
2019-06-21 17:10:41 +08:00
@matou ????? 不思进取???


你确定你用的来 frame ????
unruly
2019-06-21 17:58:02 +08:00
页面布局部分 iOS 一直是很落后的 frame -> AutoLayout 是过度 还在使用 frame 布局的只能说你喜欢你继续
CSwater
2019-06-21 19:43:15 +08:00
@MarginK 请问你们 frame 是怎么适配不同比例屏幕,以及横屏、可能存在的刘海屏上下颠倒的安全区问题?
ssynhtn
2019-06-21 19:48:15 +08:00
请使用 ConstraintLayout
holydancer
2019-06-21 20:11:26 +08:00
看来我真的老了,我不是很喜欢用 masonry,不是因为性能,就是习惯问题…估计楼主公司的人争论也就是个习惯问题,然后找个理由给自己的习惯背书…
expkzb
2019-06-21 20:22:36 +08:00
可能不嫌累吧。像楼上所说,现在应该讨论 UIKit 和 SwiftUI 的问题,虽然 UIKIt 的玩意实现几个协议就能用了😂
0xcb
2019-06-21 21:38:34 +08:00
纯代码:Frame->Masonry,Xib:Autoresize->Autolayout, 从纯代码计算,到所见即所得; 原因是设备配置高了,开发效率也要提高。
acumen
2019-06-21 22:58:14 +08:00
拥抱变化(狗头
feikaras
2019-06-22 05:53:00 +08:00
挺有意思的,一个东西加点壳加点糖都能引起对立。。
CommandZi
2019-06-22 09:43:59 +08:00
@feikaras C 和 C++ 也对立
Ixizi
2019-06-22 11:15:14 +08:00
用 Flex Box 爽 一直用一直爽
conver
2019-06-22 12:43:55 +08:00
什么年代了还争这个,SwiftUI,FlexLayou,Texture 了解一下
Deeer
2019-06-22 15:43:20 +08:00
都什么年代了
rollpard
2019-06-22 19:05:01 +08:00
iOS9 的 layoutAnchor 用起来还是可以的,不大喜欢用 masonry。

其实 frame 做屏幕适配也很方便啊,所有布局写在 LayoutSubview 里面就行了,能获得 view 的真实宽高,layoutGuide,自由度很高
ShuangFan
2019-06-24 09:28:39 +08:00
单纯的就问题来说,frame 有些时候还是需要的,只不过大多数时候是 AutoLayout
MarginK
2019-06-24 14:13:26 +08:00
@CSwater

1.不同屏幕?和 frame 关系不大
2.横屏?你是说屏幕方向改变刷新布局吧,size 部分按比例计算,XY 甚至都可以按比例写好,监听到页面变换,layoutsubviews 方法跑一次很简单不是吗?
3.刘海屏?很抱歉我没懂你是在问什么,SafeAreaInsets 和 frame 的使用在哪里存在冲突吗?老实说我对 X 以上机型的适配没花太多功夫,反而是最近的 dark mode 目前让我发现我要改的代码更多
ruixingchen
2019-06-24 16:28:45 +08:00
pod 'Texture' 的我: frame? 蛤?

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

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

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

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

© 2021 V2EX