ios - xibs 3.5inch 和 4inch 的命名约定

标签 ios naming convention

这是一个简单的问题,我找不到任何东西,但是有没有一种方法可以命名您的 xib 文件,以便 ios 知道根据版本将一个 xib 文件替换为另一个文件。 如果你想为一个类取一个 xib 文件,你将 xib 文件命名为与类相同 前任: View Controller .m View Controller .xib

如果你想指定 iphone 或 ipad 你应用波浪号 iphone/ipad 前任: ViewController~iphone.xib ViewController~ipad.xib

所以重申这个问题,ios 5.X 和 ios 6.X 的命名约定是否有区别?

我问这个是因为 ios 6.0 有一些关于 NSLayOutConstraints 和属性标签的不错的功能,我想使用这些功能,但一个构建不支持这些功能。我最终禁用了自动布局并且没有使用属性标签,这样我就可以拥有 1 个代码库并且时间是一个因素。

我知道我能做到

if (mainWindow.frame.size.height == 568) {
   [[UIViewController alloc] initWithNib@"xibname"];
}

我知道我可以制作一个类来获取 NSString 并根据屏幕大小为 xib 文件创建适当的字符串,但是如果我可以放弃这些方法并使用内置的东西,那会更好。

最佳答案

+ (NSString *)getNibNameForName:(NSString *)name {
    if (IsiPhone4Inch) {
        NSString *possibleNibName = [NSString stringWithFormat:@"%@_iPhone4Inch", name];
        if ([[NSBundle mainBundle] pathForResource:possibleNibName ofType:@"nib"] != nil) {
            return possibleNibName;
        }
    }

    return [NSString stringWithFormat:IS_IPAD ? @"%@_iPad":@"%@", name];
}

关于ios - xibs 3.5inch 和 4inch 的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942093/

相关文章:

ios - 如何在没有[UIDevice setValue:forKey:@“orientation”]的情况下更改UI方向

ios - 使用机器人签署问题构建

c - 在 C 中声明局部函数的惯用方法

java - 将仅用于单一目的的单个 util 方法放在哪里? ( java )

javascript - 多个文件的 AngularJS 约定

ios - 如何模糊一半屏幕的容器背景

ios - 使用 Xcode 4.3.2 在 iOS 3.1.3 设备上调试时应用程序挂起

plugins - Gradle 插件命名约定

maven-2 - Maven 模块命名的最佳实践是什么?

python - 在 Python 中创建顺序目录