So I have two issues to solve:
- Detect a click on an area in an UIImageView.
- Detect a click on an area in an UIScrollView.
I’m thinking for both, since I have the x/y coordinates from the client, I’m going to programmatically instantiate an UIButton (custom/transparent) and place it over the desired area for both the UIImageView & UIScrollViews.
I will also have an event that fires when the user selects the button. I’m thinking about providing a tag and using a signature like
- (IBAction) btnPress:(id)sender
So I can query the sender
[sender tag]
And then make decisions based on the tag. Each button will have a unique id.
My questions are:
- Is this a good way to do it? What would be better?
- I’m aware of how to do all these things in IB, but not programmatically. I was under the impression connections (for IBActions) are only made in IB, so how can I wire up a button to an event all in code (I’ll start googling now).
TIA.
If you want to use a UIButton to handle the touches, you can indeed create a custom button to place over the frame. If you take this route, to apply a method to the button, you must do the following:
Then when you want to call the method, it will be an IBAction method as you would expect.
where
[sender tag]will indeed get your specified button to proceed as you wish.That being said, I might be more inclined to set up a UIGestureRecognizer on the views. Basically, you would tag your UIImageView and/or UIScrollView, then create a gesture recognizer:
Then to handle the gesture,
Of course, if you have custom scrollView or imageView classes, you can simply override the
touchesBeganmethod and do what you want from there. I think that should cover your options pretty well, so I hope this helps