Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the tap coordinates on a custom UIButton?

I'm using XCode 4.4 developing for iOS 5 on an iPad and am using the Storyboard layout when creating my custom button.

I have the touch event correctly working and logging but now I want to get the x/y coordinates of the tap on my custom button.

If possible, I'd like the coordinates to be relative to the custom button instead of relative to the entire iPad screen.

Here's my code in the .h file:

- (IBAction)getButtonClick:(id)sender;

and my code in the .m file:

    - (IBAction)getButtonClick:(id)sender {

        NSLog(@"Image Clicked.");
    }

Like I said, that correctly logs when I tap the image.

How can I get the coordinates of the tap?

I've tried a few different examples from the internet but they always freeze when it displays a bunch of numbers (maybe the coordinates) in the log box. I'm VERY new to iOS developing so please make it as simple as possible. Thanks!

like image 921
twbbas Avatar asked Aug 07 '12 14:08

twbbas


1 Answers

Incase of Swift 3.0 the accepted answer works same except syntax will be changed as follows:

Swift 3.0:

 @IBAction func buyTap(_ sender: Any, forEvent event: UIEvent) {
     let myButton = sender as! UIButton
     let touches = event.touches(for: myButton)
     let touch = touches?.first
     let touchPoint = touch?.location(in: myButton)
     print("touchPoint\(touchPoint)")
  }
like image 175
Ammar Mujeeb Avatar answered Oct 14 '22 15:10

Ammar Mujeeb