gpt4 book ai didi

iphone - 高分辨率 UITabBar 图标在低分辨率屏幕上以全尺寸显示

转载 作者:行者123 更新时间:2023-12-03 18:27:32 25 4
gpt4 key购买 nike

我正在将 iPhone 应用程序升级为高分辨率图形,但在使用旧设备时遇到了一些问题。这种情况涉及我的 UITabBar 图标。看看:

alt text

顶部的屏幕截图看起来是正确的。它是在运行 OS4 的最新一代 iPhone(新屏幕)上拍摄的。然而,第二张截图是完全错误的。高分辨率图标以 100% 大小显示并被裁剪。第二张屏幕截图取 self 运行 OS4 的第二代 iPod touch(旧屏幕)。

所以,我真的很困惑。我已经阅读了苹果的文档,据我所知,我正在做他们要求的一切。在我的应用程序包中,我的图像名为:

  • tab-featured.png
  • tab-featured@2x.png
  • tab-topics.png
  • tab-topics@2x.png
  • (...等等...)

在界面生成器中,我指定了要在选项卡栏中使用的每个图像的低分辨率版本(不带“@2x”的文件名)。如果我正确理解 iPhone 文档,设备应自动检测屏幕分辨率并显示高分辨率版本(如果可用)。因此,如果有什么不同的话,那就是我的 iPod touch 似乎错误地检测了其显示分辨率。也许我在这里遗漏了一些东西?

如果您能提供任何帮助或见解,我们将不胜感激!谢谢。

更新1:

到目前为止还没有运气。我采用手动方法并将以下内容添加到我的 UITabBarControllerviewDidLoad 命令中:

- (void)viewDidLoad {
[super viewDidLoad];

UITabBarItem *tab;
UIViewController *item;

tab = [[UITabBarItem alloc] initWithTitle:@"Featured" image:[UIImage imageNamed:@"tab-featured.png"] tag:0];
item = [self.viewControllers objectAtIndex:0];
item.tabBarItem = tab;
[tab release];

tab = [[UITabBarItem alloc] initWithTitle:@"Topics" image:[UIImage imageNamed:@"tab-topics.png"] tag:1];
item = [self.viewControllers objectAtIndex:1];
item.tabBarItem = tab;
[tab release];

tab = [[UITabBarItem alloc] initWithTitle:@"Video" image:[UIImage imageNamed:@"tab-video.png"] tag:2];
item = [self.viewControllers objectAtIndex:2];
item.tabBarItem = tab;
[tab release];

tab = [[UITabBarItem alloc] initWithTitle:@"Experts" image:[UIImage imageNamed:@"tab-experts.png"] tag:3];
item = [self.viewControllers objectAtIndex:3];
item.tabBarItem = tab;
[tab release];

tab = [[UITabBarItem alloc] initWithTitle:@"Events" image:[UIImage imageNamed:@"tab-events.png"] tag:4];
item = [self.viewControllers objectAtIndex:4];
item.tabBarItem = tab;
[tab release];
}

这仍然会产生与上面相同的结果(选项卡栏中的大截止图标)。有人听说过 UITabBar 填充高分辨率图标对的问题吗?

更新2:

关于詹姆斯的评论:

是的,我能够解决这个问题。这似乎是 XCode 中文件引用的错误。我已经没有想法了,所以我回滚并开始从我的应用程序中删除所有 @2x 图像,只是为了让所有内容再次正确显示低分辨率艺术品。一旦应用程序再次显示适当尺寸的图像(尽管分辨率较低),然后我开始一张一张地添加 @2x 图像,等待出现问题。第二次进去时似乎工作正常。不知道为什么或发生了什么。 SDK 似乎对发生的事情有些误解。

最佳答案

据我了解,神奇之处在于 UIImage 的 imageNamed:imageWithContentsOfFile:initWithContentsOfFile: 方法。传递其中一个不带“@2x”或文件扩展名的 NSString 文字,它会神奇地找到适合您设备的文件的正确版本。

这意味着,标签栏项目的图像需要以编程方式设置。可能是 IB 还不够聪明,无法编写一个根据设备分辨率动态选取图像的 Nib 。因此,请尝试在 -viewDidLoad 方法中手动设置这些图像。

关于iphone - 高分辨率 UITabBar 图标在低分辨率屏幕上以全尺寸显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3198829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com