【发布时间】:2014-03-27 13:23:33
【问题描述】:
我有一个UIImageView,我正在动态设置图像(来自 URL)。图像可能具有任意大小/纵横比。我将contentMode 设置为Aspect Fill 并将视图层的clipsToBounds 设置为YES,并且它显示正确。但是,我也想在图像视图下显示阴影。当我在图像视图的图层上设置阴影时,我需要将clipsToBounds 设置为NO 以显示阴影,这会导致显示视图中图像的渗色部分。如何保持图像视图大小不变(填充方面)并同时启用阴影?
一个选项可能涉及创建图形上下文并将图像重新绘制到该上下文中,获取具有我所需纵横比的图像并将该图像设置为我的图像视图的图像,但这是额外的处理/浪费 CPU/GPU 和正常世界时间(特别是如果我有大量带有大图像的图像视图)。
另一个选项可能涉及创建一个与我的图像视图相同大小的空白视图,将其插入到我的超级视图中我的视图下方,使用约束动态地将其附加到我的视图,并在该视图的图层上启用阴影。这还涉及为阴影创建一个额外的视图。可能比第一个更好/更有效的解决方案,但仍然需要额外的工作(CPU 方面)。
是否有任何选项不需要额外的工作,可以在我的条件下同时启用阴影和方面拟合?
【问题讨论】:
标签: ios uiview uiimageview calayer contentmode