Ios 检查imageView是否为空

Ios 检查imageView是否为空,ios,swift,Ios,Swift,我的应用程序中有一个摄像头功能,当你拍照时,它会将照片放入imageView。我有一个我已经隐藏的按钮,我想要的是当图像被放置在imageView中时,按钮被取消隐藏 @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var toGoFurther: UIButton! override func viewDidLoad() { super.viewDidLoad() toGoFurther.hidden =

我的应用程序中有一个摄像头功能,当你拍照时,它会将照片放入imageView。我有一个我已经隐藏的按钮,我想要的是当图像被放置在imageView中时,按钮被取消隐藏

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var toGoFurther: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    toGoFurther.hidden = true

    if (self.imageView.image != nil){
        toGoFurther.hidden = false
    }

    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 continueNextPage(sender: AnyObject) {
}

@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)
}

尝试将其放入ViewDidAspect方法中。应该这样做

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)    
    toGoFurther.hidden = self.imageView.image == nil
}

尝试将其放入ViewDidAspect方法中。应该这样做

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)    
    toGoFurther.hidden = self.imageView.image == nil
}

所以,当图像被捕获并设置为“视图”时,您希望取消隐藏按钮。您需要在
didFinishPickingMediaWithInfo
函数中执行此操作,如下所示:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject: AnyObject]) {
    imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage

    // dissmiss the image picker controller window
    self.dismissViewControllerAnimated(true, completion:^{
        toGoFurther.hidden = false
    })
}

所以,当图像被捕获并设置为“视图”时,您希望取消隐藏按钮。您需要在
didFinishPickingMediaWithInfo
函数中执行此操作,如下所示:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject: AnyObject]) {
    imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage

    // dissmiss the image picker controller window
    self.dismissViewControllerAnimated(true, completion:^{
        toGoFurther.hidden = false
    })
}

如果我添加动画:bool和动画的bellow,它会给出错误……没有这些,我只尝试了if-else语句,没有任何更改……我还使用了print语句进行了检查,但没有得到打印结果。嗯,你在类文件中放置代码时出错,这很奇怪。有什么错误?我打错了什么。它现在起作用了,非常感谢much@MatthewSingletononeliner toGoFurther.hidden=imageView.image==nilif我添加动画:bool和动画的吼叫,它会产生错误…….没有这样做,我只尝试了if-else语句,没有任何更改……我还使用了print语句进行了检查,但没有得到打印结果。嗯,将代码放入类文件时出错这很奇怪。有什么错误?我打错了什么。现在可以用了,非常感谢much@MatthewSingletononeliner.hidden=imageView.image==nil请在该完成块中打印一条语句以查看它是否正在执行。请在该完成块中打印一条语句以查看它是否正在执行。