• 问题

    不是所有的拍照UIImagePickerController都能搞定,理由如下:

    1.产品不整点幺蛾子,哪来体验创新

    2.设计不整点幺蛾子,怎能体现用心

    3.运营:这体验跟某宝某信咋不一样???

    4.开发:我是被逼成大佬的!!!1.2.3.层层施压,大厂能搞得,你咋搞不了

  • 思路:

    定制相机,绕不开的问题:UIImagePickerController中那块实时场景怎么搞?

    方案上一般是采用AVCaptureSession + AVCaptureVideoPreviewLayer

    AVCaptureVideoPreviewLayer继承CALayer, 设置bounds、frame, 可满足简单需求

    But, 横竖屏切换、iPhone与iPad共用、视图效果调整【毕竟上面的1.2.话语权普遍大过开发】等此类情况下,frame的方式哪有约束来的实在

    每个view都有一个layer属性,定制view的layer为AVCaptureVideoPreviewLayer, view约束调整改变frame即可

  • 上菜

    • 定义一个view

      @interface AVPreView : UIView
      
      @end
    • 设置layerClass

      + (Class)layerClass {
      return [AVCaptureVideoPreviewLayer class];
      }
    • 为了实时场景,layer即AVCaptureVideoPreviewLayer 是需要设置一个session的

      // 设置属性
      @property (nonatomic, strong) AVCaptureSession *session; // Getter & Setter
      - (AVCaptureSession *)session {
      return [(AVCaptureVideoPreviewLayer *)self.layer session];
      } - (void)setSession:(AVCaptureSession *)session {
      [(AVCaptureVideoPreviewLayer *)self.layer setSession:session];
      }
    • 需要设置聚焦之类的,此时需要对view上触碰的点转换成摄像头的位置

      -(CGPoint)captureDevicePointForPoint:(CGPoint)point{
      AVCaptureVideoPreviewLayer *layer = (AVCaptureVideoPreviewLayer *)self.layer;
      //将屏幕上点击的位置转化成摄像头的位置
      return [layer captureDevicePointOfInterestForPoint:point];
      }
  • Game Over. Code不行,多敲敲。

iOS写在定制相机之前的更多相关文章

  1. ios中从相册:相机中获取图片信息

    ios中从相册/相机中获取图片信息 从相册中获取图片的信息 UIImagePickerController *imgPickView = [[UIImagePickerController alloc ...

  2. [Android开发学iOS系列] iOS写UI的几种方式

    [Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写 ...

  3. iOS开发--AVFoundation自定义相机

    首先导入一个头文件 #import <AVFoundation/AVFoundation.h> 由于后面我们需要将拍摄好的照片写入系统相册中,所以我们在这里还需要导入一个相册需要的头文件 ...

  4. iOS使用AVCaptureSession自定义相机

    关于iOS调用摄像机来获取照片,通常我们都会调用UIImagePickerController来调用系统提供的相机来拍照,这个控件非常好 用.但是有时UIImagePickerController控件 ...

  5. 有关iOS系统中调用相机设备实现二维码扫描功能的注意点(3/3)

    今天我们接着聊聊iOS系统实现二维码扫描的其他注意点. 大家还记得前面我们用到的输出数据的类对象吗?AVCaptureMetadataOutput,就是它!如果我们需要实现目前主流APP扫描二维码的功 ...

  6. iOS开发小技巧--相机相册的正确打开方式

    iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...

  7. iOS 写给iOS开发者的React Native学习路线(转)

    我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...

  8. ios 审核未通过 相机相册权限问题

    苹果提交审核被打回来  附加的说明如下: We noticed that your app requests the user’s consent to access their camera but ...

  9. JS中调用android和ios系统手机打开相机并可选择相册功能

    编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/57626154 实现android手机打开相机选择相册 ...

随机推荐

  1. linux系统rpm和yum软件包管理

    软件安装方式总结 安装软件方式有如下几种: 方式1:编译安装 将源码程序按照需求进行先编译,后安装 缺点:装过程复杂,而且很慢 优点:安装过程可控,真正的按需求进行安装(安装位置.安装的模块都可以选择 ...

  2. ThreadLocal全面解析,一篇带你入门

    ===================== 大厂面试题: 1.Java中的引用类型有哪几种? 2.每种引用类型的特点是什么? 3.每种引用类型的应用场景是什么? 4.ThreadLocal你了解吗 5 ...

  3. shell脚本的使用该熟练起来了,你说呢?(篇三)

    继续前一篇的文章: shell脚本的使用该熟练起来了,你说呢?(篇一) shell脚本的使用该熟练起来了,你说呢?(篇二) 文章里面测试的命令脚本文件,大家关注我公众号后,可以私信我领取文件. 作者: ...

  4. Python3.9.1中如何使用split()方法?

    本文出自:lunvey,半路出家学编程之Python.split()方法定义于str类中,str类大家都知道是python内置定义的一个字符串类. split()默认两个参数,分别是分隔符和分隔数量, ...

  5. 嵌入式设备上卷积神经网络推理时memory的优化

    以前的神经网络几乎都是部署在云端(服务器上),设备端采集到数据通过网络发送给服务器做inference(推理),结果再通过网络返回给设备端.如今越来越多的神经网络部署在嵌入式设备端上,即inferen ...

  6. poj2926Requirements (曼哈顿距离)

    Description An undergraduate student, realizing that he needs to do research to improve his chances ...

  7. UVA442 矩阵链乘 Matrix Chain Multiplication

    题意: 这道题也是在不改变原序列每个元素位置的前提下,看每个元素与他身边的两个元素那个先结合能得到最大的能量 题解: 很明显这是一道区间dp的题目,这道题要断环成链,这道题需要考虑在这个区间上某个元素 ...

  8. hdu5459 Jesus Is Here

    Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she ...

  9. Codeforces Global Round 9 C. Element Extermination (思维,栈)

    题意:有一个长度\(n\)的序列,如果\(a_{i}<a_{i+1}\),那么可以选择删除\(a_{i}\)或者\(a_{i+1}\),再继续操作,问是否能够将序列删到只剩一个元素. 题解:感觉 ...

  10. windows创建p12格式的ios开发证书的流程

    现在做ios开发,原生的开发已经不是第一选择,现在有很多不同的H5开发框架,在性能上都不输原生开发,而UI方便却能做得比原生更炫,比如CSS得灵活度肯定是比原生开发出来得应用更灵活的. 我们在开发IO ...