2015-09-05 91 views
1

我正在UIScrollView內的UIImageView上工作,UIImageView通過UIScrollView可縮放,但我的目標是獲取點的座標,所以每當用戶觸摸UIImageView時將點「粘」到UIImageView,然後在未放大時(所以當縮放比例爲1.0時),座標將被保存。在swift中獲取滾動視圖內觸摸的位置(座標)

我能夠得到的圖片,把它放在一個ScrollView中的ImageView中,並且我使圖片可縮放,但每當我觸摸scrollView時都不顯示任何座標。

這是我的代碼:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.scrollview.minimumZoomScale = 0.5 
    self.scrollview.maximumZoomScale = 6.0 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

@IBAction func ChooseExisting(sender: AnyObject) { 

    let picker = UIImagePickerController() 

    picker.delegate = self 
    picker.sourceType = .PhotoLibrary 

    presentViewController(picker, animated: true, completion: nil) 


} 

@IBAction func Camera(sender: AnyObject) { 
    let picker = UIImagePickerController() 

    picker.delegate = self 
    picker.sourceType = .Camera 

    presentViewController(picker, animated: true, completion: nil) 



} 
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 
    ChosenImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage 
    dismissViewControllerAnimated(true, completion: nil) 
} 
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 
    return self.ChosenImage 
} 
override func touchesEnded(touches: Set<NSObject>, withEvent event: (UIEvent!)) { 
    if let touch = touches.first as? UITouch { 
     let location = touch.locationInView(self.ChosenImage) 

     println("\(location)") 
    } 
} 

的println只爲觸摸任何地方,但在滾動型

+0

確保設定的UIImageView的userInteractionEnabled =真 – user523234

+0

你應該使用的手勢。向UIImageView添加手勢 – anhtu

回答

2

添加UIGestureRecognizerUIImageView應修復您的問題返回值。

3

UIGestureRecognizer加入您的UIImageView並將userInteractionEnabled設置爲true

let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:Selector("imageTapped:")) 
imgViewClickTest.addGestureRecognizer(tapGestureRecognizer) 
imgViewClickTest.userInteractionEnabled = true 

然後把手水龍頭

func imageTapped(recognizer : UIGestureRecognizer) { 
    let tappedPoint: CGPoint = recognizer.locationInView(self.view!) 
    let x: CGFloat = tappedPoint.x 
    let y: CGFloat = tappedPoint.y 

    print(tappedPoint) 
    print(x) 
    print(y) 
}