iOS 自定义相机带拍摄区域边框及半透明遮罩层(含源码)
开始时准备封装成ViewController的相机,但是在不改我相机控件源码的情况下,使用者很难自定义UI。于是想到将相机核心功能封装到View里,暴露出功能方法给外面调用,调用者只需将LFCamera贴到自己的控制器里即可,相机的UI由使用者在自己的控制器里画。
一、使用方法
在你的控制器中加上相机只需如下三行代码即可
- (void)viewDidLoad {
[super viewDidLoad];
self.lfCamera = [[LFCamera alloc] initWithFrame:self.view.bounds];
//设置有效区域(可不设置,不设置则不显示遮罩层和边框)
self.lfCamera.effectiveRect = CGRectMake(, , self.view.frame.size.width - , );
[self.view insertSubview:self.lfCamera atIndex:];
}
然后使用者只需在自己的控制器添加一些按钮如:拍照、闪光灯开关、切换前后摄像头等按钮,按钮的事件调用LFCamera里的一些方法即可。
二、功能
看看.h文件就知道有哪些功能了,
//闪光灯模式
typedef NS_ENUM(NSInteger, LFCaptureFlashMode) {
LFCaptureFlashModeOff = 0,
LFCaptureFlashModeOn = 1,
LFCaptureFlashModeAuto = 2
}; @interface LFCamera : UIView @property (assign, nonatomic) CGRect effectiveRect;//拍摄有效区域(可不设置,不设置则不显示遮罩层和边框) //有效区边框色,默认橘色
@property (nonatomic, strong) UIColor *effectiveRectBorderColor; //遮罩层颜色,默认黑色半透明
@property (nonatomic, strong) UIColor *maskColor; @property (nonatomic) UIView *focusView;//聚焦的view - (instancetype)initWithFrame:(CGRect)frame; /**获取摄像头方向*/
- (BOOL)isCameraFront; /**获取闪光灯模式*/
- (LFCaptureFlashMode)getCaptureFlashMode; /**切换闪光灯*/
- (void)switchLight:(LFCaptureFlashMode)flashMode; /**切换摄像头*/
- (void)switchCamera:(BOOL)isFront; /**拍照*/
- (void)takePhoto:(void (^)(UIImage *img))resultBlock; /**重拍*/
- (void)restart;
源码地址:https://github.com/zhanglinfeng/LFCamera
2017.12.25修改:
这只是LFKit的一个子库,LFKit地址https://github.com/zhanglinfeng/LFKit
以后只在LFKit中维护了
只需LFCamera的 pod 'LFKit/Component/LFCamera'
需要LFKit中所有自定义控件的pod 'LFKit/Component'
需要总库的 pod 'LFKit'
需要总库的 pod 'LFKit'
iOS 自定义相机带拍摄区域边框及半透明遮罩层(含源码)的更多相关文章
- C# Winform 实现自定义半透明遮罩层介绍
在网页中通过div+css实现半透明效果不难,今天我们看看一种在winfrom中实现的方法: 效果图如下,正常时: 显示遮罩层时: 自定义遮罩层控件的源码如下: View Row Code 1 usi ...
- iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码
iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 程序员取悦女票的正确姿势---Tip1(iOS美容篇) iOS 前台重启应用和清除角标的问题 微信原生提醒对话框3.0 JHLikeBu ...
- 【.net+jquery】绘制自定义表单(含源码)
前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也 ...
- jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...
- iOS二十种超酷时尚艺术滤镜汇总【附源码】
本文总结了20种ios滤镜都是基于GPUImage的,有3种滤镜是GPUImage库中包含的,还有17种是Instagram中的经典滤镜,集成在一个项目中.使用GPUImage可以非常容易创建我们自己 ...
- 实现iOS项目一款用swift实现的应用top源码
Top 后台 Swift版本Ios 8 / iPhone 5S适配这边有个登陆,如果你们想测试的话,可以用这个账号, 账号:18868879362 密码:420562 源码下载: http://c ...
- android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...
- android高仿抖音、点餐界面、天气项目、自定义view指示、爬取美女图片等源码
Android精选源码 一个爬取美女图片的app Android高仿抖音 android一个可以上拉下滑的Ui效果 android用shape方式实现样式源码 一款Android上的新浪微博第三方轻量 ...
- Springboot+Redisson自定义注解一次解决重复提交问题(含源码)
前言 项目中经常会出现重复提交的问题,而接口幂等性也一直以来是做任何项目都要关注的疑难点,网上可以查到非常多的方案,我归纳了几点如下: 1).数据库层面,对责任字段设置唯一索引,这是最直接有效 ...
随机推荐
- fs.watch 爬坑
上星期用 fs.watch 和 readline.createInterface 对pm2的合并日志做了监控,根据指定的错误信息重启服务 发现不管是手动vim编辑日志,还是等待日志自动输出. fs.w ...
- 关于applePay详细讲解
https://www.cnblogs.com/diweinan/p/6225501.html
- AngularJS+BootStrap的一些插件
插件网址:http://jquerypluginplus.com/ 树 1.angular-bootstrap-nav-tree http://jquerypluginplus.com/angula ...
- 【uva10829-求形如UVU的串的个数】后缀数组+rmq or 直接for水过
题意:UVU形式的串的个数,V的长度规定,U要一样,位置不同即为不同字串 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&am ...
- 01-modal
Demo示例程序源代码
源代码下载链接:01-modal.zip37.8 KB // MJAppDelegate.h // // MJAppDelegate.h // 01-modal // // Created by ...
- NYOJ 38 布线问题 (最小生成树 prim)
题目链接 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件: 1.把所有的楼都供上电. 2.所用电线花费最少 输入 第一行是一个整数n表示有n组测 ...
- js没有重载
javascript与其他语言(如java)不同,它没有传统意义上的重载(即为函数编写两个定义,只要这两个函数的参数类型或数量不同即可),在js中,后定义的函数会覆盖先前的函数.js中的参数在内部是用 ...
- php使用curl模拟登录带验证码的网站
需求是这样的,需要登录带验证码的网站,获取数据,但是不可能人为一直去记录数据,想通过自动采集的方式进行,如下是试验出来的结果代码!有需要的可以参考下! <?php namespace Home\ ...
- HDU3746(KMP求循环节)
Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- python的上下文管理(context)(1)
本文转载自:http://blog.csdn.net/G_66_hero/article/details/53048540 什么是Python中的上下文管理器 怎么使用上下文管理器 如何创建自己的上下 ...