2015-09-05 5 views
1

Я работаю над UIImageView внутри UIScrollView, UIImageView сделан масштабируемым через UIScrollView, но моя цель - получить координаты точки, поэтому что всякий раз, когда пользователь прикасается к UIImageView при увеличении точки «прилипает» к UIImageView, тогда, когда unzoomed (поэтому, когда масштаб масштабирования равен 1,0), координаты будут сохранены.Получить местоположение (координаты) касания внутри прокрутки в swift

Мне удалось получить изображение, поместить его в ImageView в ScrollView, и я сделал изображение масштабируемым, но всякий раз, когда я касаюсь 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 возвращает значения только для прикосновения в любом месте, но в Scrollview

+0

Убедитесь, что установлен UIImageView в userInteractionEnabled = истинный – user523234

+0

Вы должны с помощью жеста. Добавить жест в UIImageView – anhtu

ответ

2

Добавление UIGestureRecognizer к вашему UIImageView следует исправить ошибку.

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) 
} 
Смежные вопросы