iOS中給UITableView的側(cè)滑刪除增加多個(gè)按鈕的實(shí)現(xiàn)方法
一. 需求:
cell的側(cè)滑刪除默認(rèn)只有一個(gè)刪除按鈕, 給側(cè)滑添加多個(gè)按鈕, '刪除', '置頂', '更多'.
二. 實(shí)現(xiàn)說明:
1) 我們在使用一些應(yīng)用的時(shí)候,在滑動(dòng)一些聯(lián)系人的某一行的時(shí)候,會(huì)出現(xiàn)刪除、置頂、更多等等的按鈕,在iOS8之前,我們都需要自己去實(shí)現(xiàn)。但是到了iOS8,系統(tǒng)已經(jīng)寫好了,只需要一個(gè)代理方法和一個(gè)類就搞定了
2) iOS8的協(xié)議多了一個(gè)方法,返回值是數(shù)組的tableView:editActionsForRowAtIndexPath:方法,我們可以在方法內(nèi)部寫好幾個(gè)按鈕,然后放到數(shù)組中返回,那些按鈕的類就是UITableViewRowAction
3) 在UITableViewRowAction類,我們可以設(shè)置按鈕的樣式、顯示的文字、背景色、和按鈕的事件(事件在Block中實(shí)現(xiàn))
4) 在代理方法中,我們可以創(chuàng)建多個(gè)按鈕放到數(shù)組中返回,最先放入數(shù)組的按鈕顯示在最右側(cè),最后放入的顯示在最左側(cè)
5) 注意:如果我們自己設(shè)定了一個(gè)或多個(gè)按鈕,系統(tǒng)自帶的刪除按鈕就消失了.
三. 代碼實(shí)現(xiàn):
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 添加一個(gè)'刪除'按鈕
UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"刪除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"點(diǎn)擊了'刪除'");
// 1. 更新數(shù)據(jù)
// 2. 更新UI
// [tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
}];
// 添加一個(gè)'置頂'按鈕
UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置頂" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"點(diǎn)擊了'置頂'");
// 1. 更新數(shù)據(jù)
// 2. 更新UI
//NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];
//[tableView moveRowAtIndexPath:indexPathtoIndexPath:firstIndexPath];
}];
topRowAction.backgroundColor = [UIColor blueColor];
// 添加一個(gè)'更多'按鈕
UITableViewRowAction *moreRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"點(diǎn)擊了'更多'");
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}];
moreRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
//將設(shè)置好的按鈕放到數(shù)組中返回
return @[deleteRowAction, topRowAction, moreRowAction];
}
相關(guān)閱讀:
詳解iOS開發(fā)中UITableview cell 頂部空白的多種設(shè)置方法
以上所述是小編給大家介紹的Android中給UITableView的側(cè)滑刪除增加多個(gè)按鈕的實(shí)現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹
- iOS應(yīng)用開發(fā)中UITableView的分割線的一些設(shè)置技巧
- 改變iOS應(yīng)用中UITableView的背景顏色與背景圖片的方法
- 詳解iOS開發(fā)中UITableview cell 頂部空白的多種設(shè)置方法
- iOS App中UITableView左滑出現(xiàn)刪除按鈕及其cell的重用
- IOS中UITableView滾動(dòng)到指定位置
- 全面解析iOS應(yīng)用中自定義UITableViewCell的方法
- iOS 11 下適配UITableView 問題
- iOS11解決UITableView側(cè)滑刪除無限拉伸的方法
相關(guān)文章
Android自動(dòng)測試工具M(jìn)onkey
Monkey是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法2016-01-01
Android實(shí)現(xiàn)簡單加法計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡單加法計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Android自定義View實(shí)現(xiàn)打鉤動(dòng)畫功能
本篇文章通過實(shí)例給大家分享了Android自定義View實(shí)現(xiàn)打鉤動(dòng)畫功能的過程和代碼分享,有興趣需要的學(xué)習(xí)下吧。2017-12-12
Android?studio實(shí)現(xiàn)app登錄界面
這篇文章主要為大家詳細(xì)介紹了Android?studio實(shí)現(xiàn)app登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android Activity跳轉(zhuǎn)動(dòng)畫效果
這篇文章主要介紹了Android Activity跳轉(zhuǎn)動(dòng)畫效果,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2017-02-02
Android開發(fā)中MJRefresh自定義刷新動(dòng)畫效果
本文給大家介紹了MJRefresh自定義刷新動(dòng)畫效果,包括常見用法等相關(guān)知識,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-11-11
Android下拉刷新SwipeRefreshLayout控件使用方法
這篇文章主要介紹了Android下拉刷新SwipeRefreshLayout控件使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

