如何更改uitableview删除按钮文本


78

嗨,我正在尝试更改当用户在我的表格视图内滑动uitableviewcell时在“删除”按钮中显示的文本。

我在另一个问题线程中看到了一个示例,该示例说要使用此tableview委托

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

我的问题是,如何使用此方法。我不确定如何使用此方法。

Answers:


198

在您的控制器管理中,UITableView您应该实现UITableviewDelegate并在方法内返回您想要的方法标题titleForDeleteConfirmationButtonForRowAtIndexPath

例:

@interface CategoryAddViewController : UITableViewController
@end

@implementation CategoryAddViewController
// ...
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
return @"Please don't delete me!";
}

@end

像这样使您离开:

在此处输入图片说明


很好,但是为什么按钮的外观不再动画?添加后,将弹出删除按钮,而不是对其进行动画处理!编辑:我不好,一定是一个模拟故障。重新启动应用程序后,可以再次确定。
Maciej Swic

@FaizanS。我也在研究这个。有没有办法只是改变财产?类似于...self.tableView.deleteButton.name = @"Remove";而不是替代方法?
斯科特(Scott)

截至撰写本文时为止。在iOS SDK中,通过覆盖基本UI类的现有方法可以实现许多功能。
Faizan S.

2
快速的方式:func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath:NSIndexPath) -> String{ return "Remove Me"; }
datayeah 2015年

1
在此答案中,没有理由添加<UITableViewDelegate>
rmaddy

31

在Swift中是相等的,只是方法签名是不同的!

func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String? {
  return "Erase"
}

4

只需返回要显示的字符串即可,而不是删除。假设您希望对所有行显示“擦除”,则上述函数应包含:

return @"Erase";

阅读

同样,在您的.h文件中,如果您的视图控制器还不是UITableViewController,则添加UITableViewDelegate。可以是:

@interface SomeView : UIViewController <UITableViewDelegate>

要么

@interface SomeView : UITableViewController

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.