3 回答
TA贡献1804条经验 获得超2个赞
答主也是写了好几年Android才过来iOS的技术渣。一开始感觉iOS各种不爽,然而写了几个月习惯了之后,竟然发现反而我已经没法写好Android了。因为iOS其实写起来比我最初想象的要方便的多,也比Android方便的多。
至于我初学时排斥iOS开发的原因,很大程度上归结于Xcode有点糟糕的体验。Xcode有一个很大的毛病:明明很方便很常用的功能,却放在角落里当图标,连提示都不给。
Interface Builder的AutoLayout约束功能——就是放在可视化编辑区域右下角的四个不起眼的小图标——也是如此。选中一个控件,点第二个按钮,可以设置水平垂直居中约束;点第三个按钮可以设置与上下左右最近控件的距离、固定宽度、固定高度、固定宽高比;最后一个按钮用于按设置好的约束更新视图。这四个按钮功能甚至还更强大:如果按住command多选一些控件,可以设置多个控件对齐等。
一旦控件被设置了约束,它就有了隐式的自适应内容的趋势,除非强制设置了一些约束改变它的大小。
如果多个UILabel之类的自适应内容的控件排列在一起,还要注意一下右侧属性栏“尺寸”标签最下方的Content Hugging Priority和Content Compression Resistance Priority。答主词汇浅薄,暂时描述不清楚这个功能,只能说有点像Android中的layout_weight。
AutoLayout的思想也是从Android转到iOS的开发者要特别注意的,尤其是约束的数量要恰到好处,既不能少到出现歧义,又不能多到发生冲突;每个控件的约束必须足以确定它的水平位置、垂直位置、宽度和高度(UILabel等可以自适应内容,则不需要确定宽度和高度)。
在答主自己的实践过程中,AutoLayout可以实现很多Android Layout不能实现的需求(也可能是因为答主对Android了解不够)。所以说虽然初学者可能感觉AutoLayout不如Android Layout方便,但是当开发者掌握了AutoLayout的各种用法之后,就会觉得这同样是一个方便且更加强大的工具。
- 3 回答
- 0 关注
- 697 浏览
添加回答
举报