gpt4 book ai didi

objective-c - iOS:UITableView 选择性触摸

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:31:17 25 4
gpt4 key购买 nike

我有一个 UITableView,它有一些高度不同的单元格。我希望有一种方法,无需向每个单元格添加按钮,如果单元格中的触摸低于某个点,就不会收到对 didSelectedRowAtIndexPath 的响应。

例如,假设我有两个单元格,一个高度为 100,另一个高度为 150。有没有办法不接收对 didSelectRowAtIndexPath: 低于 100 的触摸的响应, 但仍然接收到单元格上的触摸输入?

我想覆盖单元格中的触摸方法,将委托(delegate)中的接触点返回给 Controller /表,并使用该输入来确定我是否将忽略 didSelectRowAtIndexPath: 响应,但我担心突出显示和其他调用以及它是否不够快以阻止这些调用。这对我来说似乎真的很可疑。

最佳答案

我认为如果不对单元格进行子类化,这是不可能的。

我的建议是:

  1. 创建细胞的子类
  2. 向单元格添加额外的 bool iVar,例如 didTapOutside
  3. 根据 touchesBegan 方法中的 Y 位置点击,将 bool 值设置为 True 或 False
  4. didSelectRowAtIndexPath 中读取 didTapOutside bool 变量并根据它的设置执行操作

示例如下:

@interface MyCustomCell : UITableViewCell {
BOOL didTapOutside;
}
@property (atomic, readwrite) BOOL didTapOutside;

和实现:

@implementation MyCustomCell

@synthesize didTapOutside;

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:touch.view];

didTapOutside = (location.y>100);

[super touchesBegan:touches withEvent:event];
}

关于objective-c - iOS:UITableView 选择性触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113972/

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