博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义UITableViewCell 的delete按钮
阅读量:7105 次
发布时间:2019-06-28

本文共 2564 字,大约阅读时间需要 8 分钟。

自定义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;   
        
}   
    
}   
}

转载于:https://www.cnblogs.com/cocoajin/p/3176554.html

你可能感兴趣的文章
2013 ACM/ICPC Asia Regional Chengdu Online hdu4731 Minimum palindrome
查看>>
LINQ~什么时候使用SelectMany和GroupBy
查看>>
js 遇到 Permission denied to access property ***
查看>>
杭电1509--Windows Message Queue(优先队列)
查看>>
C#中文转换成拼音
查看>>
C语言程序设计实验第四次作业
查看>>
【转】C#自定义异常类简介
查看>>
hadoop(5)---yarn配置 --常用配置
查看>>
提高博客浏览量的几个小技巧
查看>>
模板Template
查看>>
ios-网络request请求
查看>>
多线程 线程间通信 wait,notify
查看>>
Linux中断(interrupt)子系统之一:中断系统基本原理【转】
查看>>
selenium 页面元素的内置属性
查看>>
ubuntu16.04 离线安装nginx
查看>>
Block、委托、回调函数原理剖析(在Object C语境)——这样讲还不懂,根本不可能!...
查看>>
ubuntu/debian/linux彻底卸载mysql
查看>>
debian彻底清理MYSQL
查看>>
内核编译出错解决
查看>>
SOA会不会造成IT黑洞
查看>>