iphone - 创建不直接图像处理的掩蔽层?

标签 iphone ios xcode ipad

我基本上是在尝试实现这种效果。这几乎可以用一个带有透明孔的 PNG 来完成,然后堆叠在 photo.jpg UIView 的顶部。或者,我还看到了一种可以使用 CGImageMaskCreate 直接创建 mask 的方法。我不想使用该功能,因为我希望用户能够与 photo.jpg 图层进行交互(通过移动、旋转等):

enter image description here

它本质上是两个直接堆叠在彼此之上的 UIView。

但是,如果我不想使用蓝色,而是想使用另一种颜色,或者甚至使用 [UIColor colorPatternWithImage:] 对图像进行图案化作为 mask 层怎么办?我不想为每个案例制作一百万个不同的 PNG。

我是否需要某种方式以编程方式重新创建我的面具?有什么方法可以将我的蒙版形状转换为代码吗?任何帮助表示赞赏。谢谢

最佳答案

CALayer 有一个名为 mask 的属性,这是另一个定义要使用的掩码的 CALayer。您可以使用 CAShapeLayer 来定义 mask ,然后将其设置为另一层的 mask 来呈现您的模糊图像/颜色/图案/任何内容。您还可以使用常规 CALayer 作为 mask ,将半透明图像作为内容,这取决于您是否希望能够自定义孔的大小/形状。

注意事项:CAShapeLayer 比普通图层慢,mask 也比非 mask 慢。您可能需要确保性能对您来说是可以接受的。您可能还想尝试使用 shouldRasterize 标志,尽管这只会提高性能(以内存为代价),只要层是静态的(即没有动画)。

关于iphone - 创建不直接图像处理的掩蔽层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9594746/

相关文章:

ios - Xcode 5 iOS 7 Simulator 没有加载 Storyboard 让我抓狂! (没有本地化)

iphone - UITableViewCell 变换重复反转

ios - 应用程序运行时更改自定义 View

android - 当我的 Android 应用正在播放音乐时,如何关闭所有其他音乐?

iOS - 安排多个本地通知,UNCalendarNotificationTrigger

ios - 将静态库添加到 Xcode 项目时出现重复符号

ios - 子文件夹中的资源未包含在 ipa 中

iphone - 如何构建通用ios静态库

iphone - Twitter 身份验证 OAuth 或 XAuth

android - iOS - 访问应用程序创建的文件和文件夹