Ios 滑动以删除UITableViewCell不工作
我正在使用SWRevealViewController作为侧菜单。加载的UIViewController包含UITableView。表视图已启用要删除的幻灯片。但是,编辑功能并不总是有效。i、 e,tableView:committeeditingstyle:不会被解雇。虽然它发生在几次尝试之后。我认为手势识别器中存在冲突。我已经做了一天了。有人能帮我吗Ios 滑动以删除UITableViewCell不工作,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我正在使用SWRevealViewController作为侧菜单。加载的UIViewController包含UITableView。表视图已启用要删除的幻灯片。但是,编辑功能并不总是有效。i、 e,tableView:committeeditingstyle:不会被解雇。虽然它发生在几次尝试之后。我认为手势识别器中存在冲突。我已经做了一天了。有人能帮我吗 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSInd
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
NSUInteger count = [self.shopListArray count];
if (row < count) {
[[[self.shopListArray objectAtIndex:indexPath.section] objectForKey:IFRecipe_ingredient] removeObjectAtIndex:row];
}
[self.shopListTableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
-(BOOL)tableView:(UITableView*)tableView canEditRowAtIndexPath:(nsindepath*)indepath
{
返回YES;
}
-(void)tableView:(UITableView*)tableView提交的编辑样式:(UITableViewCellEditingStyle)行的编辑样式索引路径:(NSIndexPath*)索引路径
{
NSUTEGER行=[indexPath行];
NSU整数计数=[self.shopListArray计数];
如果(行<计数){
[[[self.shopListArray objectAtIndex:indexath.section]objectForKey:IFRecipe\u component]removeObjectAtIndex:row];
}
[self.shopListTableView deleteRowsAtIndexPaths:@[indexPath]带RowAnimation:UITableViewRowAnimationFade];
}
当手势出现冲突时,我该怎么办 在代码中设置
UITableViewCellEditingStyle
:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
SWRevealViewController中的平移手势识别器存在问题,在superview包含平移手势识别器中,我们在视图中看到tableview swibe识别器问题,在SWRevealViewController中删除平移手势并进行检查。为了启用表视图的编辑模式,您可以调用UITableView上的编辑方法,如下所示:, 在
viewdiload
或视图中将出现
// try this
[self.tableView setEditing:YES animated:YES];
然后你就可以很容易地做到这一点。试试这个
首先,在did load方法上或在需要时将tableview编辑模式设置为“是”。
[self.tableView设置编辑:是动画:是]代码>
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleDelete;
}
- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}
从这篇文章中找到了解决方案。解决了我的问题。必须使用以下代码
- (BOOL)revealControllerPanGestureShouldBegin:(SWRevealViewController *)revealController
{
float velocity = [revealController.panGestureRecognizer velocityInView:self.view].x;
if (velocity < 0 && self.revealViewController.frontViewPosition == FrontViewPositionLeft)
return NO;
else
return YES;
}
-(BOOL)revealController测试应开始:(SWRevealViewController*)revealController
{
浮动速度=[revealController.PangestureRecognitor速度视图:self.view].x;
如果(速度<0&&self.revealViewController.frontViewPosition==FrontViewPositionLeft)
返回否;
其他的
返回YES;
}
用相关代码更新您的问题。我很确定SWRevealViewController不会工作,也会使用UISlider:)如果没有实现,这是默认值。我也使用了这个。但这是徒劳的。如果我不使用SWRevealViewController,上面的代码可以正常工作。但是在上面的情况下。它在单元格中显示负号。我想实现幻灯片删除。