gpt4 book ai didi

ios - didSelectRowAtIndexPath 没有被调用

转载 作者:技术小花猫 更新时间:2023-10-29 11:09:16 25 4
gpt4 key购买 nike

我在 UITableViewCell 中添加了 UIScrollView,但是当我点击 ScrollView 时没有调用选择方法。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

我在单元格的 contentView 上添加了 ScrollView ,它仍然没有调用 did select 方法。

 [cell.contentView addSubview:scrollView];

最佳答案

您的表格单元格无法检测到触摸的原因是因为您的单元格上的 scrollView 正在拦截触摸并且没有将其传送到表格单元格以便可以调用 tableView 委托(delegate)函数。

一个更简单的修复方法是创建一个 UIScrollView 的子类,并将单元格上的 ScrollView 设置为这个子类。在 scrollview 子类上覆盖这些方法

-(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
if (!self.dragging)
[self.superview touchesCancelled: touches withEvent:event];
else
[super touchesCancelled: touches withEvent: event];
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if (!self.dragging)
[self.superview touchesMoved: touches withEvent:event];
else
[super touchesMoved: touches withEvent: event];
}

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (!self.dragging)
[self.superview touchesBegan: touches withEvent:event];
else
[super touchesBegan: touches withEvent: event];
}

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if (!self.dragging)
[self.superview touchesEnded: touches withEvent:event];
else
[super touchesEnded: touches withEvent: event];
}

这主要是检查 ScrollView 是否被拖动,如果没有,它会将所有触摸事件传递给它的 super View ,在本例中是单元格内容 View 。

这解决了我的类似问题,希望对您有所帮助。

干杯。

关于ios - didSelectRowAtIndexPath 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com