自定义UITableViewCell 的delete按钮
自定义UITableViewCell上的delete按钮
滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚至可以自定义删除按钮的形状。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
//通过UITableViewDelegate方法可以实现删除 tableview中某一行 //滑动删除 -( void )tableView:( UITableView *)tableView commitEditingStyle :(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath :( NSIndexPath *)indexPath { NSUInteger row = [indexPath row ]; [bookInforemoveObjectAtIndex:row]; //bookInfo为当前table中显示的array [tableView deleteRowsAtIndexPaths :[NSArrayarrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationLeft]; } /*此时删除按钮为Delete,如果想显示为“删除” 中文的话,则需要实现 UITableViewDelegate中的- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath方法*/ - ( NSString *)tableView:( UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath :( NSIndexPath *)indexPath{ return @"删除" ; } //或者,最简单的方式,将plist中的Localization native development region改为China即可 //这只是让默认的Delete按钮显示成了中文的删除按钮而已,如果想将这个删除按钮换成其他图片形式的,怎么办呢? -( UITableViewCell *)tableView:( UITableView *)tableView cellForRowAtIndexPath :( NSIndexPath *)indexPath { static NSString * RootViewControllerCell = @"RootViewControllerCell" ; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :RootViewControllerCell]; if (cell == nil ) { cell = [[[ UITableViewCell alloc ] initWithFrame : CGRectZero reuseIdentifier :RootViewControllerCell]autorelease]; UIButton *button = [ UIButton buttonWithType :UIButtonTypeCustom]; [button setBackgroundImage :[ UIImage imageNamed : @"delete.png" ] forState :UIControlStateNormal]; [button setFrame :CGRectMake( 2 8 0 , 1 0 , 3 0 , 3 0 )]; [button addTarget : self action : @selector (del:) forControlEvents :UIControlEventTouchUpInside]; [cell .contentView addSubview :button]; } cell .textLabel .text = [array objectAtIndex :[indexPath row ]]; cell .tag = [indexPath row ]; NSArray *subviews = [cell .contentView subviews ]; for ( id view in subviews) { if ([view isKindOfClass :[ UIButton class ]]) { [view setTag :[indexPath row ]]; [cell .contentView bringSubviewToFront :view]; } } return cell; } -( void )del:( UIButton *)button { NSArray *visiblecells = [ self .table visibleCells ]; for ( UITableViewCell *cell in visiblecells) { if (cell .tag == button .tag ) { [array removeObjectAtIndex :[cell tag ]]; [table reloadData ]; break; } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具