• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    Objective-C
  • Created about 6 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

快速实现 UIView 镂空效果。

MFSubtractMask

一种实现 UIView 镂空效果的方案,可以快速实现任意形状的镂空、文字的镂空、带镂空的毛玻璃效果等。本质上是 UIViewmaskView 效果的「取反」。

下面是最终实现的效果:

可以很方便地生成毛玻璃的镂空效果:

如何导入

手动导入

将 MFSubtractMask 文件夹拖入工程中。

如何使用

1. 引入头文件

#import "UIView+MFSubtractMask.h"

2. 设置 subtractMaskView 属性

用法类似于 UIViewmaskView 属性,但是能获得完全相反的效果。

self.blackView.subtractMaskView = imageView;

局限性

1. subtractMaskView 不会自动刷新

我们知道,当 UIViewmaskView 的内容动态修改时,会实时反映到 UIView 中。但在本项目中, subtractMaskView 属性会生成一张全新的图片来作为遮罩图,因为不会根据 subtractMaskView 的内容实时来刷新视图。如果需要更新,必须手动调用 setSubtractMaskView: 方法来重新生成遮罩图。

2. setSubtractMaskView: 不宜被频繁调用

setSubtractMaskView: 本质上是生成一个新的遮罩图的过程,该过程涉及图片像素的遍历转换,较为耗时,不宜频繁调用。

本项目更适合只生成一次遮罩图的场景。