2016-02-26 89 views

回答

3

UIImagePickerController有你可以用它來提供,這將作爲一個覆蓋一個自定義視圖的cameraOverlayView財產。下面的示例創建一個正方形的疊加視圖。試用它來獲得你想要的。

@IBAction func takePhoto(sender: AnyObject) { 

    if !UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){ 
     return 
    } 

    var imagePicker = UIImagePickerController() 
    imagePicker.delegate = self 
    imagePicker.sourceType = UIImagePickerControllerSourceType.Camera; 

    //Create camera overlay 
    let pickerFrame = CGRectMake(0, UIApplication.sharedApplication().statusBarFrame.size.height, imagePicker.view.bounds.width, imagePicker.view.bounds.height - imagePicker.navigationBar.bounds.size.height - imagePicker.toolbar.bounds.size.height) 
    let squareFrame = CGRectMake(pickerFrame.width/2 - 200/2, pickerFrame.height/2 - 200/2, 200, 200) 
    UIGraphicsBeginImageContext(pickerFrame.size) 

    let context = UIGraphicsGetCurrentContext() 
    CGContextSaveGState(context) 
    CGContextAddRect(context, CGContextGetClipBoundingBox(context)) 
    CGContextMoveToPoint(context, squareFrame.origin.x, squareFrame.origin.y) 
    CGContextAddLineToPoint(context, squareFrame.origin.x + squareFrame.width, squareFrame.origin.y) 
    CGContextAddLineToPoint(context, squareFrame.origin.x + squareFrame.width, squareFrame.origin.y + squareFrame.size.height) 
    CGContextAddLineToPoint(context, squareFrame.origin.x, squareFrame.origin.y + squareFrame.size.height) 
    CGContextAddLineToPoint(context, squareFrame.origin.x, squareFrame.origin.y) 
    CGContextEOClip(context) 
    CGContextMoveToPoint(context, pickerFrame.origin.x, pickerFrame.origin.y) 
    CGContextSetRGBFillColor(context, 0, 0, 0, 1) 
    CGContextFillRect(context, pickerFrame) 
    CGContextRestoreGState(context) 

    let overlayImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext(); 

    let overlayView = UIImageView(frame: pickerFrame) 
    overlayView.image = overlayImage 
    imagePicker.cameraOverlayView = overlayView 
    self.presentViewController(imagePicker, animated: true, completion: nil) 

} 
+0

謝謝。但是,你有沒有在CameraManager中使用過?如果你有,我很高興知道如何在swift 2.0的相機中心添加定製圓形面具。再次感謝。 –

+0

如何在完成圖像選取器代表中獲取圖像。我無法使用「信息[UIImagePickerControllerEditedImage]作爲?UIImage」 – Antony