IOS 7/IOS 6自定义工具栏barbuttonitem

问题描述:

我试图用故事板为iOS7和iOS6提供支持。我已经专为iOS7定制barbuttonitem它看起来像这样:IOS 7/IOS 6自定义工具栏barbuttonitem

custom iOS7 barbuttonitem

它看起来就好了。问题是如何为iOS6的barbuttonitem指定另一个图像。显然,iOS6和iOS 7图像需要不同的尺寸。在iOS 6的按钮看起来是这样的:

iOS6 rendering of barbuttonitem

如何在故事板做到这一点?是否有某种后缀或命名约定可以将iOS7图像与iOS6图像区分开来?

感谢吉姆

对于这样的事情,你可能需要通过编程修改基础上运行的版本出现。

我用这样的:

#define IS_IOS_6 ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) 
// or 
// #define IS_IOS_6 (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 

if (IS_IOS_6) { 
    [self.barButtonItem setBackgroundImage:ios6Image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
} else { 
    [self.barButtonItem setBackgroundImage:ios7Image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
} 
+0

是的,这似乎是使这项工作的唯一方法。我也查看了图片资产目录,并且它不支持不同的iOS按钮项目选项。 – svjim

您可以使用此加载基于iOS的版本不同的图像。

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { 

// Load resources for iOS 6.1 or earlier 

} 

else { 

// Load resources for iOS 7 or later 

}