我应该有两个 XIB 来处理 iOS 和 iOS 6 吗?
Posted
技术标签:
【中文标题】我应该有两个 XIB 来处理 iOS 和 iOS 6 吗?【英文标题】:Should I have two XIBs to handle iOS5 and iOS6? 【发布时间】:2012-09-25 17:06:48 【问题描述】:刚刚升级到最新的 Xcode 和 ios6。当您使用 XIB 创建新的视图控制器时,它默认为 iOS6 屏幕尺寸,但您可以手动更改此设置以查看您的应用在 iOS5 中的外观。
我的问题是,您是否打算拥有两个 XIB,一个专门为 iOS5 设计,另一个在 iOS6 中设计;还是您使用某种自动调整大小的工具来处理所有事情?
谢谢。
【问题讨论】:
【参考方案1】:Apple Dev Boards 中围绕这个问题进行了很多讨论。我对此的看法:
如果您可以使用自动调整大小或自动布局,请勿使用多个 XIB。
我敢打赌,每个人都会使用 99% 的视图,这是完全可以管理的。表视图很简单,如果您的表视图需要一个 XIB,只使用一个。如果您对 3.5" 和 4" 的看法明显不同,请使用两个 XIB。但请尝试通过实施巧妙的layoutSubviews
例程来避免这种情况。
父视图的简单示例始终将子视图 bottomView
在底部和全宽对齐:
- (void)layoutSubviews
CGSize mySize = self.bounds.size;
CGRect bottomFrame = bottomView.frame;
bottomFrame.origin.y = mySize.height - bottomFrame.size.height;
bottomFrame.size.width = mySize.width;
bottomView.frame = bottomFrame;
【讨论】:
唯一的问题是旧版本可能不支持自动布局。但我想它会做。谢谢 是的,这是真的。我在简单的情况下使用自动调整大小,在更复杂的情况下覆盖layoutSubviews
,由于向后兼容性,尚未使用自动布局。
关于 layoutSubviews 的示例可能对其他开发人员有用,我在 developer.apple.com/library/ios/#documentation/uikit/reference/… 上找到了一些文档以上是关于我应该有两个 XIB 来处理 iOS 和 iOS 6 吗?的主要内容,如果未能解决你的问题,请参考以下文章