UITableViewCell 与 UIScrollView 防止单元格触摸

Posted

技术标签:

【中文标题】UITableViewCell 与 UIScrollView 防止单元格触摸【英文标题】:UITableViewCell with UIScrollView preventing cell touch 【发布时间】:2014-03-13 22:29:42 【问题描述】:

我创建了一个 UITableViewCell 类,我在其中创建了一个包含 UIScrollView 作为其 contentView 的单元格。

UIScrollView 可以正常工作,并且具有可以工作的水平滚动功能...但是这会阻止 UITableViewCell 类的触摸方法工作。

这就是我将 UIScrollView 添加到 UITableViewCell 的方式

- (void)drawCell

    nameString = [[UILabel alloc] init];
    nameString.backgroundColor = [UIColor clearColor];
    nameString.frame = CGRectMake(15.0, 0.5, 70.0, 40.0);
    nameString.text = [itemsDictionary objectForKey:@"Name"];

    addressString = [[UILabel alloc] init];
    addressString.backgroundColor = [UIColor clearColor];
    addressString.frame = CGRectMake(105.0, 0.5, 95.0, 40.0);
    addressString.text = [itemsDictionary objectForKey:@"Address"];

    rd4String = [[UILabel alloc] init];
    rd4String.backgroundColor = [UIColor clearColor];
    rd4String.frame = CGRectMake(220.0, 10.5, rd4String.frame.size.width, 50.0);
    rd4String.text = [NSString stringWithFormat:@"ID %@: %@",[itemsDictionary objectForKey:@"name"] ,[itemsDictionary objectForKey:@"address"]];
    [rd4String sizeToFit];

    scrollCell = [[UIScrollView alloc] init];
    scrollCell.backgroundColor = [UIColor whiteColor];
    scrollCell.frame = CGRectMake(0.0, 0.0, ScreenWidth, 45.0);
    [scrollCell setContentSize:(CGSizeMake((220.0 + rd4String.frame.size.width)+15, 45.0))];

    [scrollCell addSubview:nameString];
    [scrollCell addSubview:addressString];
    [scrollCell addSubview:rd4String];
    [[self contentView] addSubview:scrollCell];


我从我的 UITableViewCell 调用这个类,一切正常显示,我可以滚动 UITableViewcell 我只是无法选择单元格。

【问题讨论】:

【参考方案1】:

虽然缺乏对问题的整体详细描述,但您可以检查您是否正确使用UITableViewDelegate 并实现tableView:didSelectRowAtIndexPath: 方法。

此外,如果您想在表格单元格中实现滑动操作,您可以参考以下实现之一:

https://github.com/Dromaguirre/PDGestureTableView https://github.com/JLZ/JZSwipeCell

【讨论】:

以上是关于UITableViewCell 与 UIScrollView 防止单元格触摸的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 与 UITextField 失去选择 UITableView 行的能力?

自定义uitableviewcell时,registerNib与registerClass的区别(转载)

UIMenucontroller 与 uitableviewcell 上的 uitextview

UITableViewCell 中的 UIStackView 与多行 UILabel

UITableViewCell 与 UIScrollView 防止单元格触摸

UITableViewCell的选中时的颜色及tableViewCell的selecte与deselecte