为啥我的 UIImageView 放在故事板上时会模糊?

Posted

技术标签:

【中文标题】为啥我的 UIImageView 放在故事板上时会模糊?【英文标题】:Why is my UIImageView blurry when I put it on my storyboard?为什么我的 UIImageView 放在故事板上时会模糊? 【发布时间】:2013-10-04 18:21:14 【问题描述】:

我有一个 20x36px (10x18pt) 的箭头图像,当我选择一个 UIImageView 时,将它拖到我的视图控制器上然后设置图像,它总是模糊的。我只在我的项目中包含了@2x,因为它只有一个 ios 7,但我就是不明白为什么它这么模糊。

图片:

除非放大,否则可能很难分辨,但会出现一些难看的混叠。

【问题讨论】:

【参考方案1】:

如果您在模拟器中运行应用程序,则可以使用“调试”菜单中的“颜色未对齐图像”。黄色图像被拉伸,洋红色图像存在亚像素对齐问题。

在这种情况下,UIImageView 的尺寸看起来与您的图像尺寸不匹配,导致 UIImageView 拉伸图像。您可以执行以下两项操作之一来确保不会发生拉伸:

    确保您的 UIImageView 的尺寸与您的 UIImage 匹配。如果您使用自动布局,请确保您只有一个水平位置约束和一个垂直位置约束,并且您的 UIImageView 的大小应与其固有内容大小(即图像大小)一致。如果您在任一维度上有大小约束或多个位置约束,这些约束将强制 UIImageView 为特定大小,这可能与图像的大小不同。

    将 UIImageView 的内容模式设置为不会拉伸图像的内容模式,例如 Center (UIViewContentModeCenter)。

【讨论】:

有没有办法将它们设置为未拉伸? 只要确保您的 UIImageView 的宽度和高度与您放入的图像相同。 如果它是@2x 并说,37px 宽怎么办? 然后我会在图像编辑器中编辑图像并添加 1 个像素的填充以使其宽度为偶数个像素。 @2x 图像在两个维度上的像素数应始终为偶数。如果您使用 Resizer(由 Bonobo 开发)之类的应用,如果您使用奇数,则会收到警告。【参考方案2】:

我将两个箭头并排放置并添加了辅助线。左箭头垂直拉伸两个像素:

宽度相同。

【讨论】:

以上是关于为啥我的 UIImageView 放在故事板上时会模糊?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我将网站放在 debian 服务器上时出现 cayenne 连接错误

如何以编程方式将 UIImageView 添加到 UIStackView(故事板)

将故事板 UIImageView 更改为具有背景颜色的自己的类

故事板:自定义 UITableView

为啥在我的基于 macOS 文档的应用程序中没有调用带有故事板的 applicationDidFinishLaunching?

为啥我的 WKWebView 的故事板表示看起来与在模拟器上运行的不同?