在 iOS 7 中无法显示 UITabBarItem.image 正确大小
Posted
技术标签:
【中文标题】在 iOS 7 中无法显示 UITabBarItem.image 正确大小【英文标题】:Trouble showing UITabBarItem.image correct size in iOS 7 【发布时间】:2014-03-04 11:23:22 【问题描述】:我以编程方式创建了一个 UITabBarcontroller,如下所示:
UITabBarController *tbc = [[UITabBarController alloc] init];
[tbc setViewControllers:[NSArray arrayWithObjects:vc1,vc2,vc3,vc4,vc5,nil]];
这工作正常。对于每个 UIViewControllers,我想将它们的 tabbaritem.image 设置为指定的图像,所以我这样做:
UITabBarItem *tbi1 = [[UITabBarItem alloc] initWithTitle:@"Search" image:
[UIImage imageNamed:@"tab_bar_search_50_50.png"] tag:0];
vc1.tabBarItem = tbi1;
我也试过了
vc1.tabBarItem.image = [UIImage imageNamed:@"tab_bar_search_50_50.png"];
和
UITabBarItem *tbi1 = [[UITabBarItem alloc] initWithTitle:@"Search" image:
[UIImage imageNamed:@"tab_bar_search_50_50.png"] selectedImage:
[UIImage imageNamed:@"tab_bar_search_50_50.png"]];
图片尺寸为50x50,因为根据apple->https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
一个大小为“大约 50 x 50(最大:96 x 64)就可以了”的标签栏图标。然而,当我在模拟器和设备(两个视网膜屏幕)上运行它时,图像太大并且挂在标签栏的顶部。
我什至尝试将 @2x 作为后缀添加到文件名中,但这不起作用,但我认为由于该应用程序仅针对 ios7 构建,因此不再需要这些后缀?
我猜这个问题要么是 iOS7 中的错误,要么是图像大小的问题,但我在文档中读到,如果图像太大,它会被剪裁到一定的范围?
【问题讨论】:
【参考方案1】:我相信我已经解决了我的问题。问题是当我添加@2x 后缀时,我还将它包含在 UIImage 的命名中:
[UIImage imageNamed @"image@2x.png"];
但这必须是:
[UIImage imageNamed @"image.png"];
【讨论】:
Tyler Durden 你的意思是说图像命名不应该有后缀@2x,但应该是视网膜或非视网膜图像的大小。以上是关于在 iOS 7 中无法显示 UITabBarItem.image 正确大小的主要内容,如果未能解决你的问题,请参考以下文章
ios 7 TableViewController 单元格无法完全显示
MKMapview 在模拟器的 iOS-7.0 中不显示地图
在带有 Xamarin.iOS 的 iOS 7 上的 ViewDidAppear 方法中显示阻止的 UIAlertView 不起作用