首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITabBarItem图像大小

UITabBarItem图像大小
EN

Stack Overflow用户
提问于 2013-09-06 22:27:06
回答 2查看 24.4K关注 0票数 17

我正在为我的UITabBar制作图像。我正在制作60x60的大小,因为这就是视网膜屏幕的用途。但是,当我使用该大小时,它在条形图中显示得太大,所以您只能看到图像的一部分。当我把它缩小到30x30的时候,它就能工作了,但这个尺寸应该是非视网膜显示器的。为什么我使用60x60的时候不能正常显示?

EN

回答 2

Stack Overflow用户

发布于 2013-09-06 22:36:36

您可能需要将您的视网膜图像重命名为imagename@2x.png

票数 13
EN

Stack Overflow用户

发布于 2014-09-01 20:33:04

当iOS正在寻找标准分辨率的图像时,您之所以获得此行为,是因为您提供的是高分辨率图像。

根据访问设备的分辨率,iOS会自动为您选择合适的图像大小。因此,您将负责为非视网膜设备提供“标准分辨率”图像,为视网膜显示器提供“高分辨率”图像。在iOS中执行此操作的方法是将"@2x“附加到文件名的末尾,但在文件扩展名之前,如下所示:

代码语言:javascript
复制
my-image.png     // for non-retina displays (Ex: 30x30 dpi)
my-image@2x.png  // for retina displays (Ex: 60x60 dpi)
my-image@3x.png  // for retina displays(plus editions) (Ex: 90x90 dpi)

然后,当你在你的XCode项目中引用文件时,你只需要提供标准分辨率的文件名(例如,"my-image.png"),如果访问设备有视网膜显示器,那么XCode会自动为你选择带有"@2x“后缀的文件。这是非常方便的,因为它使我们的开发人员不必检测设备是否有视网膜显示器,以及我们需要提供的图像。

下面是一个代码示例:

代码语言:javascript
复制
// Select an image named "my-image.png"
UIImage *img = [UIImage imageNamed:@"my-image.png"];

// If the device this code is run on is a retina device,
// then Xcode will automatically search for "my-image@2x.png" and "my-image@3x.png"
// otherwise, it will use "my-image.png"

你可以在苹果开发者的网站上阅读更多关于这个主题的内容:Optimizing for High Resolution

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18660139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档