• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - Xcode Assets 目录支持 3. 5", 4"和 4.7"@2x 图像?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:58:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

Xcode 为 1x、2x、4"2x 和 3x Assets 提供 Assets 桶。我的全屏 Assets 在这种配置下都很不稳定,因为 2x 桶用于 3.5"和 4.7"屏幕。目前我有一个 UIImage 类别内省(introspection)当前屏幕尺寸,如果设备看起来是 3.5,则选择“*-3.5” Assets 。

这很笨重而且不酷。看到 Xcode 可以满足其 LaunchImage Assets 的所有不同设备尺寸,我希望有某种方法可以为非启动图像 Assets 提供特定于设备的 Assets ,而无需借助代码。



Best Answer-推荐答案


自 2014 年 11 月中旬以来,我已向 Apple 报告了一个关于此问题的错误,我只是注意到他们将其标记为无值(value)……这给我的印象是,Apple 故意省略了 iPhone 6 的额外插槽。我的猜测是他们现在希望将 2x 插槽用于 iPhone 6,也许他们正在减少对 iPhone 4s 的支持,因为它已经过时了。

如果你真的想继续支持 iPhone 4s,我建议在 2x slot 中使用 iPhone 6 大小的图片,然后使用以下方法加载图片:

+(UIImage *)loadImageNamedNSString *)imageName
{
    CGSize screenSize = [UIScreen mainScreen].bounds.size;
    CGFloat screenHeight = MAX(screenSize.width, screenSize.height);
    CGFloat const IPHONE_4_SCREEN_HEIGHT = 480;
    UIImage *image = [UIImage imageNamed:imageName];
    if(screenHeight == IPHONE_4_SCREEN_HEIGHT) {
        CGFloat const xScale = .85333333;//x conversion ratio from iPhone 6's 375 pts width screen to iPhone 4's 320 pts width screen
        CGFloat const yScale = .71964018;//y conversion ratio from iPhone 6's 667 pts height screen to iPhone 4's 480 pts height screen
        CGSize newSize = CGSizeMake(xScale * image.size.width, yScale * image.size.height);
        UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);

        [image drawInRectCGRect){0, 0, newSize}];
        UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return resizedImage;
    }
    return image;
}

即使纵横比不同,将大图像 (iPhone 6) 调整为小图像 (iPhone 4) 也不会损失太多质量。

关于ios - Xcode Assets 目录支持 3. 5", 4"和 4.7"@2x 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26219762/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap