问题描述
在利用 iOS 6 新的自动布局功能的同时,还能在早期版本的 iOS 上提供与旧设备的兼容性的最佳方式是什么?
可以在每个 .storyboard 或 .xib 文件上启用或禁用自动布局.只需选择特定文件并使用 Xcode 中的文件检查器修改使用自动布局"属性:
使用启用自动布局的接口文件并将部署目标设置为 6.0 之前的 iOS 版本会导致编译错误,例如:
<块引用>MainStoryboard.storyboard:3 中的错误:iOS 6.0 之前版本的自动布局
在项目中使用自动布局并仍然保持与 iOS4-5 的兼容性的一种选择是创建两个 指出的那样,如果您从代码加载情节提要文件并且不使用主要Storyboard"设置在Xcode中设置初始storyboard,可以使用单个target.
对我来说,维护多个目标和接口文件所增加的复杂性成本似乎超过了使用自动布局的好处.除了少数特殊情况,如果需要 iOS4-5 兼容性,您可能最好使用普通的旧自动调整大小(或代码中的 layoutSubViews).
What is the best way to take advantage of the new auto layout features of iOS 6 while still providing compability with older devices on earlier versions of iOS?
Autolayout can be enabled or disabled on each .storyboard or .xib file. Just select the particular file and modify the "Use Autolayout" property using the File inspector in Xcode:
Using autolayout enabled interface files with the deployment target set to an iOS version prior to 6.0 results in compilation errors, e.g.:
Error in MainStoryboard.storyboard:3: Auto Layout on iOS Versions prior to 6.0
One of your options to use autolayout in a project and still preserve compatibility with iOS4-5 is to create two targets: one for deployment target iOS 6.0 and one for an earlier iOS version, e.g.:
You can create two versions for each of your storyboard and XIB files as well and use the autolayout enabled with the 6.0 target and the other with the legacy target, e.g.:
You then add MainStoryBoardAutoSize to the iOS6 target's Build phases and the other file to the iOS4 target. You can learn more about using multiple targets here.
EDIT: As marchinram's answer points out, if you load you storyboard files from code and do not use the "Main Storyboard" setting in Xcode to set the initial storyboard, you can use a single target.
For me, the cost of the added complexity of maintaining multiple targets and interface files seems to outweigh the benefits of using autolayout. Except for a few special cases, you are probably much better to use plain old auto sizing (or layoutSubViews from code) exclusively if iOS4-5 compatibility is required.
这篇关于在 iOS 6 中启用自动布局,同时保持向后兼容 iOS 5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)