84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
学习了几天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的各种用法之后,就会觉得这同样是一个方便且更加强大的工具。
能否贴下xib截图和代码,有些情况是默认开启了autolayout
xib中可以直接设置高度的,但不够灵活,你可以去了解下AutoLayout
ios现在用的是autolayout布局,当然你可以关了使用“绝对定位”。autolayout跟现在android的constraintslayout什么的有些许类似。跟relativelayout的话也有些类似的地方,不过没有那么多。使用上把光标停在你的view上,然后ctrl+drag。之后设置具体的参数。
答主也是写了好几年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的各种用法之后,就会觉得这同样是一个方便且更加强大的工具。
能否贴下xib截图和代码,有些情况是默认开启了autolayout
xib中可以直接设置高度的,但不够灵活,你可以去了解下AutoLayout
ios现在用的是autolayout布局,当然你可以关了使用“绝对定位”。autolayout跟现在android的constraintslayout什么的有些许类似。跟relativelayout的话也有些类似的地方,不过没有那么多。使用上把光标停在你的view上,然后ctrl+drag。之后设置具体的参数。