滑动不显示删除按钮
swipe not showing delete button
真奇怪。 :(
我正在尝试在表格视图中实现滑动删除。因为下面是我所拥有的。
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"commitEditingStyle===%@", editingStyle);
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete
NSLog(@"now delete this cell");
}
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete;
}
当我滑动时仍然滑动完成,但我看不到 删除 按钮。
知道发生了什么吗?
编辑 1
现在更奇怪了。
当我在 viewDidLoad
中说 mainTableView.editing = YES;
时,我有以下内容。
为什么左侧出现删除选项?
还有编辑选项,它看起来仍然和第一张图片一样。
编辑 2
// table view delegates
- (int)numberOfSectionsInTableView:(UITableView *) tableView {
return 1;
}
- (int) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section {
return actualProductsArray.count;
}
-(UITableViewCell *) tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MainCell"];
// created label and added into cell...
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
你必须在 ViewDidload
中尝试 Tableview.editing=YES
我只在我的代码中使用下面的行来滑动删除它对我来说非常好。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// Delete the row from the data source
//[self.tblinboxmsg deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
希望对你也有帮助...
我认为您是直接在单元格上添加标签而不是 cell.contentView。
如果您在此处提供代码
// 创建标签并添加到单元格中...
我们可以为您提供更多帮助。
tableView.editing = true
具有与图像编辑 1 相同的行为。(按钮在左侧)
但是按钮在内容上,不应该。因为你直接在单元格上添加标签
请在 contentView 中添加标签,然后重试
虽然这不是真正的答案,但下面是错误的。
在定义 tableview 的大小时,我将其宽度定义为 1080 而不是 320,因此我无法看到删除按钮,因为它位于屏幕前面。
我知道这个问题已经解决一年多了,但对于一些可能遇到这个问题的人来说,这可能只是一个限制 issue.That 我就是这样解决我的问题的。
不敢相信我已经尝试解决这个问题好几天了,真的!,因为我认为它在我的代码实现中的某个地方,因为我从 UITableViewController 转换到 UIViewController 上的 UITableView。我只是从原始的 UITableViewController
复制了 UITableViewCell
并且代码从原始的 UITableViewController 实现中运行良好。
@Fahim Parkar 第一个屏幕截图与我的场景几乎相同。滑动不显示删除。我认为这意味着 canEditRowAtIndexPath
已经实施。我相信他的回答是在代码中设置的,但它让我尝试检查我的约束并最终修复它
我有同样的问题,它与 table 的宽度或没有 canEditRowAtIndexPath 无关。我注意到当我向左滑动时,右侧导航栏按钮(编辑)会闪烁。我在代码中发现的错误是我在 setEditing 方法中调用了 tableView.reloadData()。
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
tableView.reloadData()
}
当我删除 tableView.reloadData() 行时,删除按钮按预期出现。我执行 reloadData 的原因是因为在编辑模式下,我在 table 的底部添加了一个 Insert 行,其中包含一个 editingStyleForRowAtIndexPath = .Insert
真奇怪。 :(
我正在尝试在表格视图中实现滑动删除。因为下面是我所拥有的。
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"commitEditingStyle===%@", editingStyle);
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete
NSLog(@"now delete this cell");
}
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete;
}
当我滑动时仍然滑动完成,但我看不到 删除 按钮。
知道发生了什么吗?
编辑 1
现在更奇怪了。
当我在 viewDidLoad
中说 mainTableView.editing = YES;
时,我有以下内容。
为什么左侧出现删除选项?
还有编辑选项,它看起来仍然和第一张图片一样。
编辑 2
// table view delegates
- (int)numberOfSectionsInTableView:(UITableView *) tableView {
return 1;
}
- (int) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section {
return actualProductsArray.count;
}
-(UITableViewCell *) tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MainCell"];
// created label and added into cell...
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
你必须在 ViewDidload
中尝试 Tableview.editing=YES我只在我的代码中使用下面的行来滑动删除它对我来说非常好。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// Delete the row from the data source
//[self.tblinboxmsg deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
希望对你也有帮助...
我认为您是直接在单元格上添加标签而不是 cell.contentView。
如果您在此处提供代码
// 创建标签并添加到单元格中...
我们可以为您提供更多帮助。
tableView.editing = true
具有与图像编辑 1 相同的行为。(按钮在左侧) 但是按钮在内容上,不应该。因为你直接在单元格上添加标签
请在 contentView 中添加标签,然后重试
虽然这不是真正的答案,但下面是错误的。
在定义 tableview 的大小时,我将其宽度定义为 1080 而不是 320,因此我无法看到删除按钮,因为它位于屏幕前面。
我知道这个问题已经解决一年多了,但对于一些可能遇到这个问题的人来说,这可能只是一个限制 issue.That 我就是这样解决我的问题的。
不敢相信我已经尝试解决这个问题好几天了,真的!,因为我认为它在我的代码实现中的某个地方,因为我从 UITableViewController 转换到 UIViewController 上的 UITableView。我只是从原始的 UITableViewController
复制了 UITableViewCell
并且代码从原始的 UITableViewController 实现中运行良好。
@Fahim Parkar 第一个屏幕截图与我的场景几乎相同。滑动不显示删除。我认为这意味着 canEditRowAtIndexPath
已经实施。我相信他的回答是在代码中设置的,但它让我尝试检查我的约束并最终修复它
我有同样的问题,它与 table 的宽度或没有 canEditRowAtIndexPath 无关。我注意到当我向左滑动时,右侧导航栏按钮(编辑)会闪烁。我在代码中发现的错误是我在 setEditing 方法中调用了 tableView.reloadData()。
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
tableView.reloadData()
}
当我删除 tableView.reloadData() 行时,删除按钮按预期出现。我执行 reloadData 的原因是因为在编辑模式下,我在 table 的底部添加了一个 Insert 行,其中包含一个 editingStyleForRowAtIndexPath = .Insert