В настоящее время я столкнулся с проблемой, я хотел бы выполнить действие, когда UIImageView на моем UITableViewCell был использован.
Вопрос: Как я могу это сделать? Может ли кто-нибудь показать мне код или любой учебник?
Спасибо заранее!
В настоящее время я столкнулся с проблемой, я хотел бы выполнить действие, когда UIImageView на моем UITableViewCell был использован.
Вопрос: Как я могу это сделать? Может ли кто-нибудь показать мне код или любой учебник?
Спасибо заранее!
Это на самом деле проще, чем вы думаете. Вам просто нужно убедиться, что вы включите взаимодействие с пользователем в ImageView, и вы можете добавить к нему жест нажатия. Это должно быть сделано, когда ячейка создается, чтобы избежать одновременного добавления нескольких жестов кран в один и тот же вид изображения. Например:
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myTapMethod:)];
[self.imageView addGestureRecognizer:tap];
[self.imageView setUserInteractionEnabled:YES];
}
return self;
}
- (void)myTapMethod:(UITapGestureRecognizer *)tapGesture
{
UIImageView *imageView = (UIImageView *)tapGesture.view;
NSLog(@"%@", imageView);
}
Попробуйте это
//within cellForRowAtIndexPath (where customer table cell with imageview is created and reused)
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleImageTap:)];
tap.cancelsTouchesInView = YES;
tap.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:tap];
// handle method
- (void) handleImageTap:(UIGestureRecognizer *)gestureRecognizer
{
RKLogDebug(@"imaged tab");
}
убедитесь, что у вас есть.
imageView.userInteractionEnabled = YES;
вы можете использовать customButton вместо UIImageView
Атрибут распознавания жестов может быть очень голодным и может привести к разрыву других вещей на странице. Я лично решил бы, что вы создаете пользовательскую ячейку таблицы, вставляете кнопку в пользовательский кадр ячейки, а в коде tableview устанавливаете self.customtablecell.background.image для изображения, которое вы хотите. Таким образом, вы можете назначить кнопку IBaction, чтобы она нажала на любой вид, который вы хотите.
Используйте ALActionBlocks для действия в блоке
__weak ALViewController *wSelf = self;
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithBlock:^(UITapGestureRecognizer *weakGR) {
NSLog(@"pan %@", NSStringFromCGPoint([weakGR locationInView:wSelf.view]));
}];
[self.imageView addGestureRecognizer:gr];