对不起,我的英语很差。我想在我的自定义表格单元中添加一些可点击的按钮,它工作正常,但是当我向下滚动表格时遇到问题。滚动后,上单元格中的按钮在我单击时将无响应。但是当我滚动回单元格的原始位置时,按钮再次响应。
我把这个
[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-推荐答案 strong>
我遇到了同样的问题。我使用解决方法来使用 Touch Down 而不是 Touch Up Inside。这不是一个完美的解决方案,而是一种解决方法,即使在滚动未完成时也会调用 IBAction for Touch Down。
关于ios:自定义表格单元格中的按钮在滚动时没有响应,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28272937/
|