2015-09-05 80 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) 
}