关于Xcode4.3+禁用UseAutolayout

xcode4.3及以上横空出世一个东东:UseAutolayout。
这个东东是在iOS6或者OSX 10.8上实现控件自动定位。是为了节省代码量的。好是好,只是现在写的东东都要兼容iOS5和10.7以下的系统。如果用了这东东,就没法在iOS6和10.8以下的系统上运行写的东东了。怎么取消这个东东呢?很简单,看图说话:
1.选中xib文件

2.在File Inspector那找到Use Auto Layout取消选中

然后就完事儿了

但是,怎么能完全禁用呢?
在下面两个路径下

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/User Interface/
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Cocoa Touch

这么弄一下:

grep UseAutolayout * -R

是不是发现一堆的xib文件里,有要找的东东:

Application.xctemplate/iPad/___FILEBASENAME___.xib:     <bool key="IBDocument.UseAutolayout">NO</bool>
Application.xctemplate/iPhone/___FILEBASENAME___.xib:       <bool key="IBDocument.UseAutolayout">NO</bool>
Empty.xctemplate/iPad/___FILEBASENAME___.xib:       <bool key="IBDocument.UseAutolayout">NO</bool>
Empty.xctemplate/iPhone/___FILEBASENAME___.xib:     <bool key="IBDocument.UseAutolayout">NO</bool>
View.xctemplate/iPad/___FILEBASENAME___.xib:        <bool key="IBDocument.UseAutolayout">NO</bool>
View.xctemplate/iPhone/___FILEBASENAME___.xib:      <bool key="IBDocument.UseAutolayout">NO</bool>
Window.xctemplate/iPad/___FILEBASENAME___.xib:      <bool key="IBDocument.UseAutolayout">NO</bool>
Window.xctemplate/iPhone/___FILEBASENAME___.xib:        <bool key="IBDocument.UseAutolayout">NO</bool>

就是改这些文件喽。直接一句话搞定:

sudo find . -name *.xib -exec sed -i '' -e '/UseAutolayout/{s/YES/NO/;}' {} \;

ok,这下真的清净了。。
改回来的话,也简单,YES和NO交换一下位置就可以了

sudo find . -name *.xib -exec sed -i '' -e '/UseAutolayout/{s/NO/YES/;}' {} \;

不用怀疑,以上命令实时生效,可以去xcode看效果了。

参考资料:
Arggh… Xcode 4.3 Auto Layout is ON By Default?! How to Turn Off Auto Layout…
how to disable auto layout by default for xcode 4.5?

    分享到:

About rainbird

IOS攻城狮
This entry was posted in IOS开发, Mac开发, object-c, xCode and tagged , , , , , , , , , , , . Bookmark the permalink.

发表评论