0
我對使用swift很陌生,而且我的編碼經驗很少。我剛剛開始在udemy上進行在線學習以及一些其他教程。我怎樣才能讓相機拍照然後裁剪?我遇到了崩潰錯誤
我目前正在嘗試拍攝照片,然後一旦拍攝照片,我可以放大和縮小以啓動作物。目前這是我所擁有的,但是當我嘗試運行模擬器時,我遇到了崩潰錯誤。
import UIKit
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIScrollViewDelegate {
var imageView = UIImageView()
@IBOutlet var camera: UIButton!
@IBOutlet weak var photoLibrary: UIButton!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet var imageDisplay: UIImageView!
@IBAction func photoLibraryAction(sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .PhotoLibrary
presentViewController(picker, animated: true, completion: nil)
}
@IBAction func cameraAction(sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .Camera
presentViewController(picker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
imageDisplay.image = info[UIImagePickerControllerOriginalImage] as? UIImage; dismissViewControllerAnimated(true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
imageView.frame = CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height)
imageView.image = UIImage(named: "image")
imageView.userInteractionEnabled = true
scrollView.addSubview(imageView)
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.loadImage(_:)))
tapGestureRecognizer.numberOfTapsRequired = 1
imageView.addGestureRecognizer(tapGestureRecognizer)
}
func loadImage (recognizer:UITapGestureRecognizer){
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = image
imageView.contentMode = UIViewContentMode.Center
imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height)
scrollView.contentSize = image.size
let scrollViewFrame = scrollView.frame
let scaleWidth = scrollViewFrame.size.width/scrollView.contentSize.width
let scaleHeight = scrollViewFrame.size.height/scrollView.contentSize.height
let minScale = min(scaleHeight, scaleWidth)
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = 1
scrollView.zoomScale = minScale
centerScrollViewContents()
picker.dismissViewControllerAnimated(true, completion: nil)
}
func centerScrollViewContents(){
let boundsSize = scrollView.bounds.size
var contentsFrame = imageView.frame
if contentsFrame.size.width < boundsSize.width{
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width)/2
}else{
contentsFrame.origin.x = 0
}
if contentsFrame.size.height < boundsSize.height {
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height)/2
}else{
contentsFrame.origin.y = 0
}
imageView.frame = contentsFrame
}
func scrollViewDidZoom(scrollView: UIScrollView) {
centerScrollViewContents()
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
// Do any additional setup after loading the view, typically from a nib.
}
func didReceiveMemoryWarning() {
// Dispose of any resources that can be recreated.
}
,這是錯誤
2016-04-24 14:00:30.148 My Camera App[3127:1150898] -[UIImageView setDelegate:]: unrecognized selector sent to instance 0x13ed3a2d0
2016-04-24 14:00:30.150 My Camera App[3127:1150898] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView setDelegate:]: unrecognized selector sent to instance 0x13ed3a2d0'
*** First throw call stack:
(0x181e36e38 0x18149bf80 0x181e3dccc 0x181e3ac74 0x181d38d1c 0x10002be24 0x10002c378 0x186f80b40 0x186f80744 0x186f8749c 0x186f84988 0x186ffae8c 0x1872262bc 0x18722a500 0x187227674 0x1837d77ac 0x1837d7618 0x1837d79c8 0x181ded124 0x181decbb8 0x181dea8b8 0x181d14d10 0x186fef834 0x186fe9f70 0x10002fb0c 0x1818b28b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
什麼是崩潰的路線? – EmilioPelaez