我一直在网上寻找解决方案很长时间。大多数教程都非常简单地向 UIView 添加阴影。我还注意到,如果我们向 UIImageView 添加阴影。如果图像本身具有 alpha 通道,则阴影形状可以完美地适合内容图像的形状。例如,如果图像是具有透明背景的动物,则阴影形状也与该动物相同(不是与 UIImageView 框架相同的矩形阴影)。
但这些还不够。我需要做的是对阴影添加一些更改,使其可能具有一些旋转角度和压缩(挤压或移位)效果,以便看起来阳光来自某个点。
为了演示我需要什么,我上传了下面 2 张图片,这些图片是从 Apple 创建的 Google Map App 中捕获的。你可以想象 Annotation Pin 是一个有 Pin 形状的图像,所以阴影也是“pin 形”的,但它不是简单地用 CGSize“偏移”,你可以看到阴影的顶部向右移动了大约 35度并略微挤压高度。
当我们点击并按住并固定时,阴影也被动画远离针脚,所以我相信这样的阴影可以可编程地制作。
到目前为止我能找到的最好的阴影教程是http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths但不幸的是,这不能产生这种效果。
如果有人知道答案或知道要搜索的更好的词,请告诉我。谢谢你。
(请注意,图像的形状在 App 中是动态的,因此不能使用 Photoshop 等任何工具预渲染阴影。)