iOS布局问题请教

查看:63
本文介绍了iOS布局问题请教的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

学习了几天iOS(依然小白)
之前是做Android的
我想问下 是否有像Android那样的可以在布局文件xml中设置高度呢

现在我只知道在xib中设置了 无效
是不是iOS要控制view的高度 必须要在代码中通过CGRectMake来设置吗

解决方案

答主也是写了好几年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的各种用法之后,就会觉得这同样是一个方便且更加强大的工具。

这篇关于iOS布局问题请教的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆