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

ios - 44 像素的宽度是否等同于所有设备的相同物理尺寸?

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

我的工作基于 iPhone 6 的屏幕尺寸,即 1136x750 像素、326 ppi。我更关心按钮的物理尺寸(出于某种原因),而不是它们的数字尺寸。

如果 iPhone 6 上宽度为 44 像素且物理宽度为 0.2 英寸的按钮在 iPhone 6 Plus 上具有相同的物理宽度,即 401 ppi?

如果不是,这不应该违反 Apple 的准则吗?他们最初测试了 44 像素作为最小宽度,但随着 ppi 越大,相同的宽度在物理上会减小。

这是否以某种方式调整/缩放?

编辑:我觉得自己很愚蠢,这一切都很明显。

编辑 2:我最初担心的是 iPhone 6 的屏幕上总共可以有

T = 375.0/44.0 = 8 个按钮。

而 iPhone 6 Plus 总共可以有

T' = 540.0/44.0 = 12 个按钮,每个按钮在物理上更小。

解决此问题的方法是计算出 iPhone 6 Plus 按钮的调整宽度,即 w' = 44.0 px * 401 ppi/326 ppi = 54.0 像素。

因此,iPhone 6 Plus 上的每个按钮都应具有 54 像素的宽度以具有相同的物理尺寸。

我想对了吗?



Best Answer-推荐答案


你说得对,iOS 中的点数与物理尺寸无关。

physicalSize = points * scale / ppi

5.5" 44*3/401 ≈ 0.33 英寸

4.7" 44*2/326 ≈ 0.27 英寸

因此,为了保证相同的物理尺寸,您需要为每个设备手动计算它,这无论如何都不是最佳做法。

从上面的公式可以得到:

points = physicalSize * ppi / scale

Swift 函数:

func points(fromInches inches: CGFloat) -> CGFloat {
    return inches * ppi / UIScreen.main.scale
}

var ppi: CGFloat {    
    //return device ppi
}

检查 this关于以编程方式获取 ppi 的问题:

编辑:

我仍然建议考虑点数,而不是物理屏幕尺寸。

关于ios - 44 像素的宽度是否等同于所有设备的相同物理尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568696/

回复

使用道具 举报

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

本版积分规则

关注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