如何处理所有可用 iPhone 分辨率上的图像比例?

2023-12-27

什么尺寸最适合用于图像:background.png,[电子邮件受保护] /cdn-cgi/l/email-protection and [电子邮件受保护] /cdn-cgi/l/email-protection例如,如果我们想使用此图像来覆盖 iPhone 肖像应用程序的所有分辨率下的屏幕全宽和半高?

这就是我们现在所拥有的:

Device                        Points   Log. Res.  Sc. Real Res.  PPI  Ratio   Size
iPhone 12 Pro Max, 13 Pro Max 926x428  2778x1284  3x  2778x1284  458  19.5:9  6.7"
iPhone 12, 12 Pro, 13, 13 Pro 844x390  2532x1170  3x  2532x1170  460  19.5:9  6.1"
iPhone 12 mini, 13 mini       812x375  2436x1125  3x  2340x1080  476  19.5:9  5.4"
iPhone XS Max, 11 Pro Max     896x414  2688x1242  3x  2688x1242  458  19.5:9  6.5"
iPhone XR, 11                 896x414  1792x828   2x  1792x828   326  19.5:9  6.1"
iPhone X, XS, 11 Pro          812x375  2436x1125  3x  2436x1125  458  19.5:9  5.8"
iPhone 6+, 6S+, 7+, 8+        736x414  2208x1242  3x  1920x1080  401  16:9    5.5"
iPhone 6, 6S, 7, 8, SE2       667x375  1334x750   2x  1334x750   326  16:9    4.7"
iPhone 5, 5S, 5C, SE1         568x320  1136x640   2x  1136x640   326  16:9    4.0"
iPhone 4, 4S                  480x320  960x640    2x  960x640    326  3:2     3.5"
iPhone 3GS                    480x320  480x320    1x  480x320    163  3:2     3.5"

有些人说,对于 iPhone 6 Plus 的边到边图像(如底部从左到右边缘的横幅),他们会准备[电子邮件受保护] /cdn-cgi/l/email-protection宽度为 1242,适用于 iPhone 6 ba[电子邮件受保护] /cdn-cgi/l/email-protection宽度为 750 以匹配 iPhone 6 屏幕尺寸,但我认为这不是一个好主意,因为 1242 / 3 = 414 和 750 / 2 = 375,因此将它们命名为 @2x 和 @3x 没有意义。那么 back.png 的宽度应该是多少 - 375 还是 414?

图形名称使用 @2x 和 @3x 后缀,例如[电子邮件受保护] /cdn-cgi/l/email-protection有30x30的分辨率然后逻辑思考[电子邮件受保护] /cdn-cgi/l/email-protection应具有 20x20 分辨率,image.png 应为 10x10。这意味着,如果我们希望每个屏幕都有清晰的全宽图像,那么我们可能应该创建[电子邮件受保护] /cdn-cgi/l/email-protection宽度为 4143=1242像素,[电子邮件受保护] /cdn-cgi/l/email-protection宽度为 4142=828px 和 back.png 宽度为 414px。然而,这意味着在除 iPhone 6 Plus 之外的每台 iPhone 上,您都需要设置 uiimages 以使用例如宽高比适合内容模式,并且它们将被调低,因此这又不是一个完美的解决方案,并且可能会真正减慢应用程序的速度,如果我们在旧设备上使用了大量的缩放功能。

那么您认为解决这个问题的最佳方案是什么?


如果不使用每个图像,则不必拥有所有比例的图像。只制作您需要的尺寸并根据宽度命名。对于全设备宽度的纵向图像,1x 和 2x 时需要 320px 宽,2x 时需要 375px 宽,3x 时需要 414px 宽。

4" 设备使用“-568h”后缀来命名其启动图像,因此我建议使用类似的命名方案:

  • ImageName-320w (@1x & @2x)
  • ImageName-375w (@2x)
  • ImageName-414w (@3x)

然后找出运行时需要什么图像:

NSNumber *screenWidth = @([UIScreen mainScreen].bounds.size.width);
NSString *imageName = [NSString stringWithFormat:@"name-%@w", screenWidth];
UIImage *image = [UIImage imageNamed:imageName];

如果将来添加其他宽度,这可能会打破,但到目前为止,苹果一直要求重建应用程序以支持新的显示器,所以我想可以肯定地假设他们会继续这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理所有可用 iPhone 分辨率上的图像比例? 的相关文章

  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 暂停视频录制[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试创建一个应用程序 用户可以在其中从相机录制视频 该应用程序的功能之一必须是文件录制中的暂停 例如 用户通过按 开始 按钮开始
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • UIView 子类不会自动调整大小

    我一直在寻找有关调整大小的背景信息 但找不到太多 我知道我需要设置autoresizesSubviews在超级视图和autoresizingMask在子视图上 我已经这样做了 并且我的 UIImageViews 正确调整了大小 但我的自定义
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • Objective Flickr 照片上传错误

    我正在使用 ObjectiveFlickr 库将照片从我的 iPhone 应用程序上传到 Flickr 我可以授权该应用程序并执行一般请求 但在尝试上传照片时遇到错误 要上传的照片是使用 AVFoundation 捕获的图像 这是相关代码
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • 您将如何实现一个检测水平滑动以允许分页的 UITableView?

    我想实现一个 UITableView 一次显示 20 行 但考虑到我实际上可能要展示 120 个项目 我想使用某种分页来处理这个问题 使用前 20 项填充表 当用户从右向左滑动时 用接下来的 20 个项目重新加载 UITableView 从
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • 使用 UIImageJPEGRepresentation 时,compressionQuality 应该是多少?

    我想对用户库中的照片应用滤镜 然后将其写回磁盘 我在用着UIImageJPEGRepresentation 该函数需要一个UIImage and a compressionQuality值介于 0 0 和 1 0 之间 因为我想保留原始质量
  • Xcode 3.1.4 中内置分析器

    我想知道 Xcode 3 1 4 中内置的分析器是否使得单独使用 LLVM Clang 静态分析器变得多余 请参考这里的原文 使用 LLVM Clang 静态分析器查找内存泄漏 http www fruitstandsoftware com
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 我什么时候应该对 IBOutlet 使用弱或强限定符? [复制]

    这个问题在这里已经有答案了 可能的重复 ARC 下 IBOutlets 应该强还是弱 https stackoverflow com questions 7678469 should iboutlets be strong or weak
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您

随机推荐

  • C++ 模板继承方案

    我想知道我的编码方式是否正确 我可以创建一个继承模板类的模板类吗 如果可以的话 以下代码是否正确 template
  • 从 HTML5 Canvas 导出矢量图形

    我很好奇这可能吗 我有兴趣在 HTML5 中构建一个矢量绘图应用程序 它能够保存为矢量 而不仅仅是 JPG PNG BMP Thanks 不 这是不可能的 绘图操作完成后 剩下的一切都在canvas是一堆像素 您必须保留所有绘图选项 然后使
  • 在 Visual Studio 中创建 hpp 文件

    当我要使用 Visual Studio 将新文件添加到项目中并且我希望它是 hpp only h文件可用 如何创建 hpp files 添加新文件时 您可以将扩展名更改为您想要的任何内容 只需将名称从 Header h 或它为您提供的任何默
  • Java HttpURLConnection - 带 Cookie 的 POST

    我正在尝试发送带有 cookie 的发布请求 这是代码 try String query URLEncoder encode key UTF 8 URLEncoder encode value UTF 8 String cookies se
  • 反序列化时二进制流“0”不包含有效的 BinaryHeader 错误

    在过去两天寻找这个问题的答案后 我希望这里有人能提供帮助 我使用 VS2012 用 c 编写了一个程序 该程序使用 BinaryFormatter 保存用户的项目数据 以将可序列化的类序列化为 Stream 然后再将其保存到文件中 该程序已
  • JavaScript 数组上的 getter/setter?

    有没有办法在数组上获取 设置行为 我想象这样的事情 var arr one two three var arr new Array for var i 0 i lt arr length i arr i defineGetter value
  • 如何从 ngModel 渲染 HTML 标签?

    我使用 AngularJS 将 JS 变量绑定到我的 HTML 内容 它工作得很好 JS var app angular module Tabs controller TabsController scope function scope
  • 如何以唯一的顺序对数组进行排序

    给定一个数组 var myList Normal Urgent Alert Casual Follow up 我想以下拉菜单的形式输出这个列表 我想 Urgent 首先出现 然后是 Alert 其余的应按字母顺序排序 我知道我可以按字母顺序
  • 如何在 Hapi 中获取请求的完整 URL

    在我的 hapijs 应用程序中 给定Request object http hapijs com api request object 如何找到原始的 未解析的 未修改的 URL function getRequestUrl reques
  • 您使用 Matlab/F#/R 进行数据分析和建模算法的经验

    我已经使用 F 一段时间来对算法进行建模 然后再用 C 进行编码 之后还使用它来检查 C 代码的结果 以及对照实际记录的数据 对于建模方面 它非常方便 但对于 数据混搭 之类的东西 从 CSV 和其他来源提取数据 生成统计数据 绘制图表等
  • 无法将 RoboMongo 与 Amazon 实例连接

    我无法将 RoboMongo 与 Amazon 实例连接 试过这个http blog mongohq com robomongo your next shell http blog mongohq com robomongo your ne
  • Django ModelForm 有一个隐藏的输入

    所以我有我的 TagStatus 模型 我正在尝试为其制作一个 ModelForm 但是 我的表单要求用 tag name 填充隐藏输入 我一直在浏览文档 但不知道如何使标签字段成为隐藏输入 也许 ModelForm 不是正确的选择 模型
  • 如何使用 Android ZoomButtonsController?

    好吧 我已经无计可施了 我不知道该怎么做使用 android widget ZoomButtonsController http developer android com reference android widget ZoomButt
  • 为什么我的 base64 编码的 png 在我的 svg 中不可见?

    我想将 png 转换为 base64 并将编码后的字符串插入 svg 中 fIm open name png rb dataIm fIm read encode base64 replace n baseIm
  • Java 语言规范中是否曾经发生过“重大变化”?

    除了引入 assert 关键字这一可能广为人知的例外情况之外 Java 语言规范是否曾发生过变化 导致旧代码不再与 JDK 的较新源代码级别兼容 到目前为止的总结 非常感谢您的评论 当升级到更高版本时 如果代码使用使用 Java 语言规范
  • Android:单击按钮时转到 HTTP URL

    我想通过单击 Android 应用程序中的按钮来访问网页 比如说 我有一个名为 Google 的按钮 当用户单击该按钮时 我希望 google com 在屏幕上打开 这是如何实现的 另外 当用户使用完 Google 后 有没有办法可以重新获
  • python:动态获取字典中的子字典?

    假设我想编写一个函数 它将从字典返回任意值 例如 mydict foo bar baz 如果不存在则返回空字符串 不过 我不知道是否mydict foo 必然存在 更不用说mydict foo bar baz 我想做这样的事情 safe n
  • 在 Safari 中使用 location.hash 滚动页面

    我有一个论坛页面 在当前选定的消息下方显示消息的树视图 当您单击树中的消息时 新消息正文将加载到div使用 AJAX 靠近页面顶部 然后运行以下代码 window location hash page top 当然 page top 是页面
  • LLVM 的整数类型

    LLVM语言将整数类型指定为iN 其中N是整数的位宽 范围从1到2 23 1 根据 http llvm org docs LangRef html integer type http llvm org docs LangRef html i
  • 如何处理所有可用 iPhone 分辨率上的图像比例?

    什么尺寸最适合用于图像 background png 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protection例如 如果我们想使用此图像来覆盖 iPh