加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift开发笔记26 使用xib自定义相机界面

发布时间:2020-12-14 07:08:02 所属栏目:百科 来源:网络整理
导读:首先创建xib以及一个继承uiview的类,然后在主界面中设置相机的cameraOverlayView 为这个UIview。 创建xib,命名为 CameraOverlay : 创建类 CameraOverlayView,继承UIView 拖个按钮到xib中,并设置xib的custom class: 并把按钮的动作处理函数拖到camerover

首先创建xib以及一个继承uiview的类,然后在主界面中设置相机的cameraOverlayView 为这个UIview。

创建xib,命名为CameraOverlay


创建类CameraOverlayView,继承UIView

拖个按钮到xib中,并设置xib的custom class:


并把按钮的动作处理函数拖到cameroverlayview中:


把xib的背景色设置为clearColor:


在主界面中,打开相机时,把CameraOverlayView设置为相机的遮罩:

@IBAction func GetPhotoAction(sender: AnyObject) {
        imagePicker =  UIImagePickerController()
        //检测相机是否可用
        let isAvailable = UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)
        //必须首先设置sourceType 然后再设置其他属性 否则会出异常,提示sourceType 必须是 UIImagePickerControllerSourceTypeCamera
        imagePicker.sourceType = .PhotoLibrary
        if isAvailable {
           imagePicker.sourceType = .Camera
            //如果有前置摄像头则调用前置摄像头
            imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.Front
            //是否显示控制栏
            imagePicker.showsCameraControls=false
      
           }
          //自定义相机界面
        let myView = NSBundle.mainBundle().loadNibNamed("CameraOverlay",owner: nil,options: nil).first as? CameraOverlayView
        if myView != nil{
            myView?.imagePicker=imagePicker
            myView?.frame = (imagePicker.cameraOverlayView?.frame)!
            // imagePicker.cameraOverlayView=myView
        }
       
        //代理
        imagePicker.delegate = self 
        //打开相机
        presentViewController(imagePicker,animated: true,completion: {
             self.imagePicker.cameraOverlayView = myView
        })
        //是否可编辑
        imagePicker.allowsEditing=false
       
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读