单击不会在uitableview ios 7中选择行

Posted

技术标签:

【中文标题】单击不会在uitableview ios 7中选择行【英文标题】:Single tap does not seelct row in uitableview ios 7 【发布时间】:2013-12-27 11:06:54 【问题描述】:

我的应用中有UITableView。在该表中,单元格具有标签。但是在ios 7 中,当我点击该行时,它不会选择该行。但是,如果我用两根手指点击行,它就可以正常工作。它在iOS 5.06.0 上运行良好。

我不使用任何手势识别器

这是什么原因以及任何有想法解决此问题的人。

我的委托方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath 
    *)indexPath 
    

        NSString *cellIdentifier = [NSString stringWithFormat:@"RowIdentifier %i", indexPath.row];

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
        if (cell == nil)
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];

        cell.backgroundView = [[UIView alloc] init];
        [cell.backgroundView setBackgroundColor:[UIColor clearColor]];
        [[[cell contentView] subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
        width = tableView.frame.size.width;
        [self createRow:cell :indexPath]; // This will add label to the content view
        if (![self isSelectable:indexPath.row]) 
        
            cell.userInteractionEnabled = NO; 
         else 
        
            cell.userInteractionEnabled = YES;
        

        for (id obj in cell.subviews)
        
            if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"])
            
                UIScrollView *scroll = (UIScrollView *) obj;
                scroll.delaysContentTouches = NO;
                break;
            
        
        [cell setExclusiveTouch:YES];
        UIView * selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame];
        [selectedBackgroundView setBackgroundColor:[UIColor colorWithRed:0.000 green:0.000 blue:1.000 alpha:1.000]];
        [cell setSelectedBackgroundView:selectedBackgroundView];
        return cell;
    

【问题讨论】:

显示您的 tableview 委托和数据源方法。 是的,展示你的方法。 您是否在视图中添加任何手势识别器 加上我的声音,我和 OP 有同样的错误。如果你知道了,可以告诉我吗? 我也有这个问题。 【参考方案1】:

如果您的视图中有任何手势识别器,例如 TapRecognizer,这可能会阻止手势到达您的表格单元格,解决方案是将您的手势识别器设置为:

[gestureRecognizer setCancelsTouchesInView:NO];

【讨论】:

这应该被选为正确答案。值得更多投票

以上是关于单击不会在uitableview ios 7中选择行的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 UITableView:是错误还是我?

在 ios 8 中的 UITextview 中单击时,键盘不会弹出但在 ios 7 中运行良好

iOS 7 UINavigationController 过渡到 UITableView:动画期间的黑色半透明层

在 iOS 7 上滚动到 UITableView 的底部?

使用 appium 自动化 IOS UITableview

如何使用自定义 UITableView 上传图片