Подтвердить что ты не робот

Нажмите "Распознавание" для UIImageView в UITableViewCell

В настоящее время я столкнулся с проблемой, я хотел бы выполнить действие, когда UIImageView на моем UITableViewCell был использован.

Вопрос: Как я могу это сделать? Может ли кто-нибудь показать мне код или любой учебник?

Спасибо заранее!

4b9b3361

Ответ 1

Это на самом деле проще, чем вы думаете. Вам просто нужно убедиться, что вы включите взаимодействие с пользователем в 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);
}

Ответ 2

Попробуйте это

//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;

Ответ 3

вы можете использовать customButton вместо UIImageView

Ответ 4

Атрибут распознавания жестов может быть очень голодным и может привести к разрыву других вещей на странице. Я лично решил бы, что вы создаете пользовательскую ячейку таблицы, вставляете кнопку в пользовательский кадр ячейки, а в коде tableview устанавливаете self.customtablecell.background.image для изображения, которое вы хотите. Таким образом, вы можете назначить кнопку IBaction, чтобы она нажала на любой вид, который вы хотите.

Ответ 5

Используйте 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];