Skip to content

一种可以快速实现 UIView 镂空效果的方案。

Notifications You must be signed in to change notification settings

PersonaZhou/MFSubtractMask

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

About

一种可以快速实现 UIView 镂空效果的方案。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Objective-C 100.0%