【发布时间】:2012-03-12 14:08:40
【问题描述】:
这可能是一个非常简单的问题,但我已经坚持了一周。我正在使用 UIImageView 来显示 Dropbox 品牌 PNG 图像。我在 Interface Builder 中看到了它,但很容易注意到 iOS 模拟器和实际设备(iPad)中的强烈像素化。这里我附上 IB 和模拟器的屏幕截图:
如果有任何提示,我将不胜感激。
提前致谢!
【问题讨论】:
标签: iphone ios uiimageview
这可能是一个非常简单的问题,但我已经坚持了一周。我正在使用 UIImageView 来显示 Dropbox 品牌 PNG 图像。我在 Interface Builder 中看到了它,但很容易注意到 iOS 模拟器和实际设备(iPad)中的强烈像素化。这里我附上 IB 和模拟器的屏幕截图:
如果有任何提示,我将不胜感激。
提前致谢!
【问题讨论】:
标签: iphone ios uiimageview
InterfaceBuilder 是一个与 iOS 甚至模拟器完全不同的环境。布局之类的东西应该翻译,但一切看起来的方式应该始终由最终产品来判断(因此是为最终产品设计的)。
您的图像似乎被略微拉伸了。这有很多原因。首先要检查的是 UIImageView 上的调整大小掩码。 UIImageViews 自动调整大小通常是不好的 - 正是因为这个原因。
顺便说一句,自动调整大小是 UIKit 确保子视图在其父视图更改大小时仍然适合/看起来不错的方式。您可以指定您希望子视图移动多少,以及您希望它伸展多少。阅读它here。
您要做的是设计您的视图 - 回答以下问题:我希望这张图片在最终产品中的尺寸有多大? -- 然后制作实际的 png 大小(同时生成一个 @2x 变体,它是视网膜显示器大小的两倍)。然后,当您在 IB 中进行设计时,将您的 UIImageView 也设置为该大小,并确保将自动调整大小设置设置为禁止拉伸。
这应该可以解决您的问题。
【讨论】:
检查以确保图像的大小与您的 UIImageView 的大小相匹配。如果图像恰好小于目标图像视图,它将拉伸以填充它,这可能会导致像素化。此外,如果您正在为 iPad 运行新的 5.1 模拟器,它将默认使用新的视网膜屏幕,这意味着您需要@2x 大小的图像来防止像素化。
【讨论】: