IOS的AutoresizingMask和AutoLayout

初涉IOS开发,还没完全踏入,借了本名叫《IOS编程》的庞然大书来翻,虽然书中是用Objective-c的,虽然Swift已然出道,不过个人认为这个对我这种还没入行的人来说,影响不大,反正感觉Swift做IOS开发,很多api都是直接copy过来的,只是整了下容而已,开发模式似乎也看不出翻天覆地的变化。看着看着,书中讲到控件自适应转屏的时候,就发现了很奇怪的问题,我的控件的“Show the Size inspector”上找不到那个设置AutoresizingMask的操作器……

“Show the Size inspector”在哪里?在Storyboard中,选中一个控件,右边栏顶上
showTheSizeInspector按照庞然大书所述,应该长成这样才对
showTheSizeInspector-withMask
随后X度了一下,搜到很多关于如何在代码里面设置auto resizing mask的方法。这里又想吐个槽,X度的搜索真的是太坑爹了……

关于代码里面如何设置,X度多得去了,自己可以X一下……但是我有个很大的疑问就是,在storyboard里面的控件,在代码里面设置mask似乎都没有效果,似乎是要在创建对象的时候就需要把mask设置好才会有效果,不知道是为什么,待我查明再打补丁……

后来在Google上搜到一篇StackOverflow上的文章讲述了为什么我的xcode上面不显示mask操作器,原因就是apple引入了一个似乎更高科技的技术,至于是不是替代auto resizing mask,我就不清楚了,这个技术就是AutoLayout。

AutoLayout在哪里设置呢?其实就在storyboard的视图区的右下角
autolayout-panel
其实我不知道4个按钮中,后面2个的用处……不要在意这些细节,慢慢来嘛……

AutoLayout的工作模式是给控件添加约束(constrain)来确定控件所在的位置和缩放大小,约束的内容(据我现在所知)是上下左右相对于其它控件的距离。关于AutoLayout的使用方法,自己试一下便有一定理解了。传说AutoLayout的constrain线如果是蓝色的就表明xcode能够确定控件位置和大小了,如果是橙色的,似乎就是不能确定。具体使用方法可以看下这篇NBility的文章:《iOS7 Autolayout 瞬间入门》,这个意思就是分分钟搞定AutoLayout的节奏。

如果想使用AutoresizingMask,而不使用AutoLayout的话,则可以在Storyboard的“Show the File inspector”取消勾选“Use Auto Layout”
close-autolayout
然后xcode会问你是不是把“Size Classes”那个选项也取消掉,因为使用那玩意儿必须要有Auto Layout的支持,直接Disable Size Classes就行了,这个时候,去到Size inspector就看得到操作器了。

本文《IOS的AutoresizingMask和AutoLayout》来自 www.juwends.com ,欢迎转载或CV操作,但请注明出处,谢谢!

IOS的AutoresizingMask和AutoLayout》上有1条评论