uitableviewcell 中subview的UIGestureRecognizer

来源:互联网 发布:破解公司网络限制软件 编辑:程序博客网 时间:2024/04/19 22:01

当某一个view,比如UIImageView为Cell的subview时,为其添加gesture时,会被cell的contentview接收到,从而无法响应该手势。

这时,可以通过将手势添加到self.table中,再判断touch的坐标是否落在UIImageView中来确定是否执行tap的操作

UITapGestureRecognizer *tap  = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(magnifyImage)];    tap.delegate = self;    self.tableView.userInteractionEnabled = YES;    [self.tableView addGestureRecognizer:tap];

#pragma mark - UIGestureRecognizerDelegate- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{    // 输出点击的view的类名    NSLog(@"%@", NSStringFromClass([touch.view class]));    //获得当前手势点击在cell中的坐标        CGPoint p = [touch locationInView:touch.view];    //看看手势点的坐标是不是在avatarImageView中    if (CGRectContainsPoint(self.avatarImageView.frame, p)) {        return YES;    }    return NO;}


0 0
原创粉丝点击