我有一个包含不同子视图的scrollview,其中一个是tableview。我还在滚动视图上初始化了UITapGestureRecognizer
和UISwipeGestureRecognizer
。 tableview使用nib初始化其单元格。
我想要做的是,当我向左滑动单元格时,我想要一个按钮来滑动。我可以在向左滑动单元格时触发我的处理程序。问题是它没有触发editActionsForRowAtIndexPath
我在哪里处理代码来创建一个按钮。
相反,它转到editingStyleForRowAtIndexPath
并结束执行,在单元格的左侧显示一个带有减号的红色图标。
我的滑动处理程序及相关代码如下:
- (void)swipeLeftDirection:(UIGestureRecognizer*)gesture
{
if (!tblInviteesTable.editing)
{
CGPoint location = [gesture locationInView: tblInviteesTable];
iPath = [tblInviteesTable indexPathForRowAtPoint:location];
// quitEditing = NO;
OpenHouseTableViewCell *currentCell = (OpenHouseTableViewCell *)[self tableView:tblInviteesTable cellForRowAtIndexPath:iPath];
[currentCell setEditing:YES];
[tblInviteesTable setEditing:YES animated:YES];
[self tableView:tblInviteesTable editActionsForRowAtIndexPath:iPath];
}}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSLog(@"Handled editing style! %ld", (long)editingStyle);
} else {
NSLog(@"Unhandled editing style! %ld", (long)editingStyle);
}
}
-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([tableView isEqual: tblInviteesTable]){
UITableViewRowAction *button = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Resend" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"Resending email");
// [_delegate listingAgentsView: self selected: indexPath];
}];
button.backgroundColor = [UIColor redColor];
return @[button];
}
return @[];
}
非常感谢任何帮助。