Я работаю над одноразовым приложением iOS в Xcode 6 в течение нескольких дней и ударил блокпост, когда я пытаюсь добавить события касания. Вот что я пытаюсь сделать:Добавление жесты крана в UIImageView для изменения UILabel?
В раскадровке я создал UILabel и UIImageView, я хотел бы добавить жест выделения к UIImageView, чтобы при нажатии на изображение метка изменилась. Хотя я не очень удобный программирование в Objective-C, я понимаю, что я должен сначала приложить жест к UIImageView, который затем может обрабатываться моим методом обработчика событий. Вот что я пытался:
В ViewController.h файле:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIImageView *imageView;
IBOutlet UILabel *myLabel;
}
-(void)handleTap:(id)sender;
@end
В файле ViewController.m:
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *pgr = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTap)];
[imageView addGestureRecognizer:pgr];
[super viewDidLoad];
}
- (void)handleTap:(UITapGestureRecognizer *)tapGestureRecognizer
{
myLabel.text = [NSString stringWithFormat:@"It Worked"];
}
Что я ожидал, что произойдет MyLabel изменится, когда imageView был использован, myLabel и imageView связаны с UILabel и UIImageView соответственно. И я понимаю, что, возможно, я мог бы сэкономить много хлопот, просто добавив кнопку в ImageView, но я действительно пытаюсь заставить ее работать с событиями касания.
Я новичок в языке, и это первый раз, когда я пытался что-то построить. Я постарался быть настолько подробным, насколько это возможно при публикации, но если вам нужна дополнительная информация, я был бы рад предоставить их. Приветствуются детали, примеры кода и объяснения того, как сочетаются детали. Спасибо.
Вы подключили розетку к этикетке в Interface Builder? –
Также ... вам нужно создать эти IBOutlets как «@properties», а затем «@synthesize» их в вашей реализации. –
@ ElGuapo не _need_, но это лучшая практика. @OP, если вы поместите точку останова в свой метод 'handleTap:', он попадает? – Stonz2