簡體   English   中英

顯示屏閃光燈像iOS相機應用一樣

[英]Display screen flash like the iOS camera app

我想實現類似在本機iOS相機應用程序中所做的操作-當我拍攝照片時,屏幕會閃爍一秒鍾。

我正在使用帶有疊加層的UIImagePicker,並想在頂部添加第二個視圖。

這是一些代碼:

最佳:

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate,
                  UIGestureRecognizerDelegate {
var cameraUI:UIImagePickerController = UIImagePickerController()
var overlay:UIImageView!

呈現相機:

func presentCamera()
{
    cameraUI = UIImagePickerController()
    cameraUI.delegate = self
    cameraUI.sourceType = UIImagePickerControllerSourceType.Camera
    cameraUI.mediaTypes = [kUTTypeImage]
    cameraUI.allowsEditing = false
    cameraUI.showsCameraControls = false

    var translate = CGAffineTransformMakeTranslation(0.0, 71.0); //This slots the preview exactly in the middle of the screen by moving it down 71 points
    cameraUI.cameraViewTransform = translate;

    var scale = CGAffineTransformScale(translate, 1.333333, 1.333333);
    cameraUI.cameraViewTransform = scale;


    self.presentViewController(cameraUI, animated: true, completion: nil)
    overlay = UIImageView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height))
    var image = UIImage(named: "bg.png")
    overlay.image = image
    overlay.userInteractionEnabled = true
    overlay.alpha = 1.0
    cameraUI.cameraOverlayView = overlay

    let recognizer = UITapGestureRecognizer(target: self, action:Selector("tapped:"))
    recognizer.delegate = self
    recognizer.numberOfTapsRequired = 1
    overlay.addGestureRecognizer(recognizer)

}

Flash屏幕:用戶拍照時調用

func flashScreen() {
    let flashView : UIView = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height))
    flashView.alpha = 0.0
    flashView.backgroundColor = UIColor.blackColor()

    print("flash")

    overlay.addSubview(flashView)
//        self.view.addSubview(flashView) doesn't work either

我什么也沒看到

我還嘗試過更改似乎也不起作用的覆蓋圖像:

//        overlay.alpha = 0.0
//        overlay.image = UIImage(named: "flash.png")
//        cameraUI.cameraOverlayView = overlay

我注意到flashView.alpha = 0.0,這意味着它是透明的。 將其設置為1.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM