2016-07-18 64 views
0

我想通过点击captureDoc按钮来捕获图像。但是,当我突然写了这个功能,我在完成处理的上述错误,无法将类型'(String) - > Void'的值转换为期望的参数类型'((AnyObject!) - > Void)!'

self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String) -> Void in 

而且我没有得到什么地方出了错。 下面是我的captureDoc函数的代码。

@IBAction func captureDoc(sender: AnyObject) { 
    weak var weakSelf = self 
      self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String) -> Void in 
       var captureImageView: UIImageView = UIImageView(image: UIImage.imageWithContentsOfFile(imageFilePath)!) 
       captureImageView.backgroundColor = UIColor(white: 0.0, alpha: 0.7) 
       captureImageView.frame = CGRectOffset(weakSelf.view.bounds, 0, -weakSelf.view.bounds.size.height) 
       captureImageView.alpha = 1.0 
       captureImageView.contentMode = .ScaleAspectFit 
       captureImageView.userInteractionEnabled = true 
       weakSelf.view!.addSubview(captureImageView) 
       var dismissTap: UITapGestureRecognizer = UITapGestureRecognizer(target: weakSelf, action: #selector(self.dismissPreview)) 
       captureImageView.addGestureRecognizer(dismissTap) 
       UIView.animateWithDuration(0.7, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.7, options: .AllowUserInteraction, animations: {() -> Void in 
        captureImageView.frame = weakSelf.view.bounds 
       }) 

      }) 

} 
+0

让它只是'imageFilePath',而不是'(imageFilePath:字符串) - > Void'。 – Dershowitz123

+0

当我做了你所说的在下一行给我一个错误时,错误是'AnyObject!'不能转换为'String';你的意思是使用'as!'强迫低调?在第四行,我宣布captureImageView,当我向下转换为字符串,然后它显示我'imageWithContentsOfFile'的另一个错误是不可用的:使用对象结构'UIImage(contentsOfFile :)'@ Dershowitz123 –

回答

0

变化的最后一行,它应该工作

@IBAction func captureDoc(_ sender: UIButton) { 
weak var weakSelf = self 
     self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String?) -> Void in 
      var captureImageView: UIImageView = UIImageView(image: UIImage.imageWithContentsOfFile(imageFilePath!)!) 
      captureImageView.backgroundColor = UIColor(white: 0.0, alpha: 0.7) 
      captureImageView.frame = CGRectOffset(weakSelf.view.bounds, 0, -weakSelf.view.bounds.size.height) 
      captureImageView.alpha = 1.0 
      captureImageView.contentMode = .ScaleAspectFit 
      captureImageView.userInteractionEnabled = true 
      weakSelf.view!.addSubview(captureImageView) 
      var dismissTap: UITapGestureRecognizer = UITapGestureRecognizer(target: weakSelf, action: #selector(self.dismissPreview)) 
      captureImageView.addGestureRecognizer(dismissTap) 
      UIView.animateWithDuration(0.7, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.7, options: .AllowUserInteraction, animations: {() -> Void in 
       captureImageView.frame = weakSelf.view.bounds 
      }, completion: { _ in }) 

     }) 

}

相关问题