【问题标题】:Interface Builder can't display 160dpi images correctly?Interface Builder 无法正确显示 160dpi 图像?
【发布时间】:2008-11-21 16:54:36
【问题描述】:
我正在开发一个 iPhone 应用程序。一个简单的图像是主视图的背景。
我已经在后台设置了一个 UIImageView 并使用 IB 设置了一个图像。
图片是 160dpi PNG 图片。它看起来像 IB 中的 CRAP。在模拟器中运行时还可以,很爽。
我应该如何工作并将我的控件精确地放置在分辨率如此低的图像上?
这是一个错误吗?
感谢您的帮助!
【问题讨论】:
标签:
iphone
cocoa-touch
interface-builder
【解决方案1】:
IB 不是设计 UI 的工具,它是实现 UI 的工具。它旨在表现良好而不是显示良好(这在复杂的桌面 UI 设计中比移动设备更重要,但两者的工具是相同的)。最好的建议可能是从出版界(对于显示大量高分辨率图形的应用程序(如 Adobe InDesign)来说这是一种常见做法)并跟踪控件的精确测量值 - x,y 坐标位置和高度/宽度。然后您可以使用检查器来精确定位控件。
【解决方案2】:
其实,DPI 也不是无关紧要的。
将 DPI 更改为 72,图像将在 IB/Xcode 中正常显示。
【解决方案3】:
当我在 IB 中处理图像时,我没有看到类似的东西。也许您的 PNG 文件有什么特别之处?你说它是 160 dpi,这无关紧要。更重要的是它的像素尺寸,以及它们与屏幕尺寸的比较。
也许 UIImageView 在渲染您的 PNG 时遇到问题,并且出于某种原因使用预览图标代替?尝试使用其他图像,或尝试将图像大小调整为 480x320,使用 32 位颜色。
【解决方案4】:
我也想知道这个。我不认为图像的 DPI 是这样做的,因为我有一个项目,在一台机器上的 IB 中一切看起来都很好,然后在我的笔记本电脑上,它显示了 OP 描述的方式。
图像尺寸与 iPhone 屏幕和视图尺寸 (320x480) 相同,但图像显示全部很小,而不是填满 UIImageView 的整个尺寸。如果我缩放以填充,那么图像在 320x480 处变得非常模糊,即使我可以确认这些是图像的实际尺寸......它的作用就像图像本身是 320x480 的空白空间和一个小的版本我的图像以它为中心……这很奇怪。正如我所说 - 这是在另一台机器上的 IB 中看起来完全正常的同一个项目(当它们构建时,它们在模拟器中看起来都很正常)。这也发生在我朋友的 macbook 上。
在 IB 中是否有一些设置可能会有所不同?
编辑:
我猜我说得太早了——我回到另一台机器上,这次发现了同样的问题,确实是 dpi。这一定是 xcode/IB 最近更新之一的变化,因为我最初从未见过这个问题,而且图像文件完全相同......奇怪。