【发布时间】:2012-06-16 00:36:43
【问题描述】:
我正在设计一个自定义按钮,它需要我在UIImageView 上覆盖UIButton。 UIImageView 使用[UIImage stretchableImageWithLeftCapWidth:topCapHeight:] 图像,UIButton 具有带有图案图像[UIColor colorWithPatternImage:[UIImage imageNamed:@"buttonPattern.png"]] 的背景颜色
我面临的问题是,在 iPhone 4 上,UIButton 和 UIImageView 的图像颜色似乎略有不同,尽管它们应该匹配。在 iPhone 3GS 上测试同样的东西,结果正常,没有色差。
这张图片显示了不同之处:
如您所见,它在 3GS 上看起来不错。在视网膜显示屏上,您可以清楚地看到颜色的差异。我什至尝试在视网膜显示器上使用低分辨率图像(来自 3GS),颜色仍然显示不同。这是视网膜显示设备中的错误吗?有没有人遇到过这个问题?
【问题讨论】:
-
你有两张不同的图片用于stretchableImage吗?如果是这样,@2x 是不是正好比另一个大 2 倍?
-
是的,“@2x”图像正好大 2 倍。我还尝试删除“@2x”图像并使用常规图像来看看会发生什么。它没有解决它。
-
你是如何创建所有不同的图像的?您是否使用过 Photoshop(或任何其他 Adobe 程序)?您是否禁用了色彩管理?
-
出于好奇,为什么必须将按钮覆盖在 UIImageView 上?为什么不能直接退出 imageview 并使用自定义按钮的 image 属性?无论如何,您能否与我们分享图像(如果您为背景手动设置任何颜色,您使用的是什么颜色),因为这比摘要中的问题更容易诊断。如果图像有专有内容,请在需要时编辑该部分。
-
@robmayoff 是的,我使用的是带有禁用颜色管理的 adobe illustrator。如果您将它们放在一起,则导出的 png 匹配,所以这不是问题。此外,如果您查看上面的 3gs 图像,它可以完美地工作,因为您无法分辨图像在哪里中断。
标签: ios uiview uiimage uibutton retina-display