加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 高分辨率UITabBar图标全屏显示在低分辨率屏幕上

发布时间:2020-12-14 20:04:26 所属栏目:百科 来源:网络整理
导读:我正在将iPhone应用程序升级为高分辨率图形,并且我遇到了旧设备的一些问题.情况涉及我的UITabBar图标.看一看: 顶部屏幕截图看起来正确.它是在最新一代的iPhone(新屏幕)上运行的OS4.但是,第二个截图是完??全错误的.高分辨率图标以100%的大小显示,并且正在被
我正在将iPhone应用程序升级为高分辨率图形,并且我遇到了旧设备的一些问题.情况涉及我的UITabBar图标.看一看:

顶部屏幕截图看起来正确.它是在最新一代的iPhone(新屏幕)上运行的OS4.但是,第二个截图是完??全错误的.高分辨率图标以100%的大小显示,并且正在被裁剪.第二个屏幕截图是从我运行OS4的第二代iPod touch(旧屏幕)中获取的.

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

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

在界面构建器中,我已经指定了每个图像的低分辨率版本(文件名WITHOUT“@ 2x”),用于标签栏.如果我正确地了解iPhone文档,设备应该自动检测屏幕分辨率并显示高分辨率版本(如果可用).所以如果有什么,几乎看起来我的iPod touch不正确地检测到它的显示分辨率.我可能在这里遗漏了一些东西吗?

任何可以提供的帮助或洞察将不胜感激!谢谢.

更新1:

到目前为止没有运气我采取了手动方法,并将以下内容添加到我的UITabBarController的viewDidLoad命令中:

- (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的形象中命名为:imageWithContentsOfFile:和initWithContentsOfFile:方法.通过其中一个NSString文字没有“@ 2x”或文件扩展名,它会神奇地找到您的设备的文件的正确版本.

一个含义是,您的标签栏项目的图像需要以编程方式设置.可能的是,IB还不够聪明地编写一个根据设备分辨率动态选择图像的笔尖.所以尝试用-viewDidLoad方法手工设置这些图像.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读