拍摄照片时更改按钮图像并放置在imageview swift xcode中

时间:2015-10-18 04:59:57

标签: ios swift swift2

我有一个拍照的应用程序,如果您使用它,它会将其放入图像视图中。我有一个按钮,其中包含图像1。我希望它是不可用的,直到图片填充图像视图,在这种情况下我希望按钮是图像2和可点击。

这是我的代码

import UIKit
import MobileCoreServices
import Parse

class photographyInitialCameraViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        let testObject = PFObject(className: "TestObject")
        testObject["foo"] = "bar"
        testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
            print("Object has been saved.")
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func takePhoto(sender: AnyObject) {
            if !UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){
                return
            }

            let 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 - 400/2, pickerFrame.height/2 - 400/2, 640, 640)
            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)
        }

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
        dismissViewControllerAnimated(true, completion: nil)
    }
}

1 个答案:

答案 0 :(得分:1)

禁用按钮?

button.userInteractionEnabled = false