OStack程序员社区-中国程序员成长平台

标题: ios:自定义表格单元格中的按钮在滚动时没有响应 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:13
标题: ios:自定义表格单元格中的按钮在滚动时没有响应

对不起,我的英语很差。我想在我的自定义表格单元中添加一些可点击的按钮,它工作正常,但是当我向下滚动表格时遇到问题。滚动后,上单元格中的按钮在我单击时将无响应。但是当我滚动回单元格的原始位置时,按钮再次响应。

我把这个

[cell.btn addTarget:self actionselector(btnPressed forControlEvents:UIControlEventTouchUpInside];

cellForRowAtIndexPath方法中; btnPressed 在我向下滚动之前已被触发。但是 btnPressed 在我滚动出该单元格原始位置的边界后无法触发。

希望有人能理解我的问题,谢谢。 请告诉我如何使按钮响应即使表格滚动?提前致谢


方法一

当我尝试 cellForRowAtIndexPath 中的方法 addtarget 并且编码是这样的

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{

            static NSString *cellIdentifier = @"CustomTableViewCell";
            CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
            if (cell == nil) {
                NSArray *nib = [[NSBundle mainBundle] loadNibNamed:cellIdentifier owner:self options:nil];
                cell = [nib objectAtIndex:0];
            }
            [cell.btn addTarget:self actionselector(btnPressed 
            return cell;
}

方法2

我还尝试了另一种方法,它不在 cellForRowAtIndexPath

中添加目标

这是我的委托(delegate)代码

在 customcell.h 中,我添加了这个

@protocol CustomCellDelegate <NSObject>
- (void)didClickOnbtn;
@end

在 customcell.m 中,我添加了这个

@interface CustomTableViewCell()
@property (nonatomic, strong) NSDictionary *currentDict;
@property (nonatomic,assign) id<CustomCellDelegate>delegate;
@end

- (IBAction)didClickOnbtnid)sender {
    if (self.delegate && [self.delegate respondsToSelectorselector(didClickOnbtn)]) {
        [self.delegate didClickOnbtn];
    }
}

我已将自定义单元格委托(delegate)设置为 tableview

在 tabelview Controller 中我也有方法 didClickOnbtn

并且按钮可以在滚动表格之前触发tableview Controller 响应中的didClickOnbtn方法。


更新: 我在表格中创建了一个节标题 View 。我发现当我删除节标题 View 时,问题就解决了。虽然我不知道为什么节标题 View 会使按钮禁用,但它现在运行良好。希望能帮到和我一样情况的 friend 。

附言两种方法都有效。



Best Answer-推荐答案


我遇到了同样的问题。我使用解决方法来使用 Touch Down 而不是 Touch Up Inside。这不是一个完美的解决方案,而是一种解决方法,即使在滚动未完成时也会调用 IBAction for Touch Down。

关于ios:自定义表格单元格中的按钮在滚动时没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272937/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4