Если вы хотите использовать UIB-кнопку для обработки касаний, вы действительно можете создать пользовательскую кнопку для размещения над рамкой. Если вы выберете этот путь, чтобы применить метод к кнопке, вы должны сделать следующее:
UIButton *myButton = [UIButton buttonWithType:....];
myButton.tag = // your tag;
[myButton addTarget:self action:@selector(btnPress:) forControlEvents:UIControlEventTouchUpInside];
Тогда, когда вы захотите вызвать метод, это будет метод IBAction, как и следовало ожидать.
- (IBAction)btnPress:(id)sender {
, где [sender tag]
действительно заставит указанную кнопку работать так, как вы хотите.
При этом, я мог бы быть более склонен настроить UIGestureRecognizer для представлений. По сути, вы должны пометить свой UIImageView и / или UIScrollView, а затем создать распознаватель жестов:
UITapGestureRecognizer *myGesture = [[UITapGestureRecognizer alloc] init];
[myGesture addTarget:self action@selector(frameTouched:)];
// for the case of the imageView;
[myImageView addGestureRecognizer:myGesture];
[myGesture release];
Затем, чтобы обработать жест,
- (void)frameTouched:(UIGestureRecognizer *)gesture {
int myLogicTag = [[gesture view] tag]; // this finds the tag of the view it embodies, in this case your imageView
// continue with your code;
}
Конечно, если у вас есть пользовательские классы scrollView или imageView, вы можете просто переопределить метод touchesBegan
и делать то, что вы хотите оттуда. Я думаю, что это должно охватить ваши варианты довольно хорошо, поэтому я надеюсь, что это поможет