BearSkill之UIView挖空处理
扫描二维码的界面或者特定的View需要做挖空处理,在StackOverFlow上找了一番,发现了一些有用的方法,并且整理了一下。
挖空效果图
核心代码
Demo地址: https://github.com/BearRan/TestCutOut
- (void)drawRect:(CGRect)rect
{[super drawRect:rect];// 设置View的fill颜色[self.unCutColor setFill];UIRectFill(rect);// 获取上下文,并设置混合模式->kCGBlendModeDestinationOutCGContextRef context = UIGraphicsGetCurrentContext();CGContextSetBlendMode(context, kCGBlendModeDestinationOut);// 设置挖空路径UIBezierPath *path;path = [UIBezierPath bezierPathWithRect:[self.cutOutFrame CGRectValue]];[path fill];// 执行混合模式CGContextSetBlendMode(context, kCGBlendModeNormal);}
如何快速使用该方法
BearSkill地址:https://github.com/BearRan/BearSkill
欢迎fork
- 集成’BearSkill’
pod 'BearSkill'
- 导入头文件
#import <BearSkill/BearCutOutView.h>
- 挖空方法一:使用Frame挖空
// cutOutView_1
// unCutColor为非挖空区域的颜色
// cutOutFrame为挖空的区域BearCutOutView *cutOutView_1 = [[BearCutOutView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)];[cutOutView_1 setUnCutColor:[UIColor yellowColor] cutOutFrame:CGRectMake(50, 50, 100, 100)];[self.view addSubview:cutOutView_1];
- 挖空方法二:使用BezierPath挖空
// cutOutView_2
// unCutColor为非挖空区域的颜色
// cutOutPath为挖空的区域//设定挖空区域UIBezierPath *bezierPath = [UIBezierPath bezierPath];[bezierPath moveToPoint:CGPointMake(50, 50)];[bezierPath addLineToPoint:CGPointMake(150, 120)];[bezierPath addLineToPoint:CGPointMake(60, 180)];[bezierPath closePath];BearCutOutView *cutOutView_2 = [[BearCutOutView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)];[cutOutView_2 setUnCutColor:[UIColor purpleColor] cutOutPath:bezierPath];[self.view addSubview:cutOutView_2];
原创文章,欢迎提出意见或者建议。联系QQ:648070256
BearSkill之UIView挖空处理相关推荐
- POW矿池挖空块原理和解决方案
第0章 引言 比特币的挖矿收益包含两部分,第一是区块奖励:第二是交易手续费.如果打空块,就收不到交易手续费,为什么有矿池会不要手续费来打空块呢? 第1章POW挖矿原理 工作量证明POW挖矿就是区块链生 ...
- “挖空三座山、装了几万台服务器”的绿色数据中心
富士康在贵安新区的数据中心造在了山洞里."他们挖空了三座山,装了几万台服务器!" 数据中心主体竣工后,经实际测试年pue值小于1.1,居于世界先进水平. 当时,富士康规划园区中有一 ...
- 使用python读取txt坐标文件生成挖空矿山_探矿批量
# -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...
- python读取坐标文本文件_使用python读取txt坐标文件生成挖空矿山_探矿批量
# -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...
- 【Threejs效果:挖空几何体】ThreeBSP实现墙体挖洞
1 效果如下 2 代码如下 基本思路: (1) 创建两个mesh,一个墙体,一个窗户 (2) 然后取墙体和窗户的差集,将差集转换成几何体 (3) 根据几何体新建mesh,并贴纹理 依赖库有三个: im ...
- 二层板的射频RF信号如何控阻抗 四层板的射频RF信号如何控阻抗 射频信号是否可以不控阻抗,射频差分需要控阻抗吗?为什么射频信号需要挖空隔层参考?射频信号为什么要加粗?
来自群友的疑难杂症(加杨老师V信:PCB206 可入群):二层板的射频如何走线 四层板的射频如何控阻抗 射频信号是否可以不控阻抗等等 确实很多群友问PCB上面的射频走线该怎么走?比如两层板的射频走线 ...
- AD16实现板框挖空
1.什么是板框挖空: 在已有外部板框的情形下,被要求在内部挖空一个部分. 这里引用别人的一块PCB图来诠释该功能的用途: 2D视图 3D视图 2.绘制方法 先看一下没有挖空操作的原图: 2D视图 3D ...
- AltiumDesigner覆铜挖空技巧总结
问题提出 在进行PCB绘制后,大部分情况下,我们需要对板子反正面进行覆铜操作.同样,大多数情况下,我们的板子上都有定位孔,如果覆铜边界和定位孔边界距离过近,当拧螺丝时,螺丝会压在覆铜上,甚至在螺丝旋转 ...
- 关于高频信号PCB挖空
原文:https://www.eda365.com/forum.php?mod=viewthread&tid=64227&page=1&_dsign=4034c65e http ...
最新文章
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM
- 【Linux 内核】实时调度类 ② ( 实时调度实体 sched_rt_entity 源码分析 | run_list、timeout、watchdog_stamp、time_slice 字段 )
- 你相亲成功的几率有多高?机器学习硬核预测
- golden gate 错误集锦
- 多表查询中的一些概念
- OPPO实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移
- 本地建mysql数据库_mysql 安装及新建本地数据库遇到的问题
- RPM 打包指南系列 一
- linux 计算字符数命令,Linux WC命令示例,用于计算行数,单词数和字符数
- 在Oracle中查询表的大小、表的占用情况和表空间的大小
- 计算机思维论文1万字,计算机思维学论文选题 计算机思维论文题目怎么取
- 小学生计算机基础知识课件,计算机基础知识课件(图表部份).ppt
- 重要且紧急的事,紧急但不重要的事,重要但不紧急的事,既不紧急又不重要的事
- T32 dump 连续寄存器
- linux ssh keygen r,SSH的ssh-keygen命令基本用法详解
- 如何将前端echats 图表插入到execl 中
- 用c语言计算高考成绩,C语言计算距离高考剩余时间
- 守护安全|AIRIOT城市天然气综合管理解决方案
- 搞前端开发的比后端多两倍,这意味着哪一个更有前途?
- python:map_reduct_filter_sorted