iOS中給UITableView的側(cè)滑刪除增加多個(gè)按鈕的實(shí)現(xiàn)方法
一. 需求:
cell的側(cè)滑刪除默認(rèn)只有一個(gè)刪除按鈕, 給側(cè)滑添加多個(gè)按鈕, '刪除', '置頂', '更多'.
二. 實(shí)現(xiàn)說(shuō)明:
1) 我們?cè)谑褂靡恍?yīng)用的時(shí)候,在滑動(dòng)一些聯(lián)系人的某一行的時(shí)候,會(huì)出現(xiàn)刪除、置頂、更多等等的按鈕,在iOS8之前,我們都需要自己去實(shí)現(xiàn)。但是到了iOS8,系統(tǒng)已經(jīng)寫(xiě)好了,只需要一個(gè)代理方法和一個(gè)類(lèi)就搞定了
2) iOS8的協(xié)議多了一個(gè)方法,返回值是數(shù)組的tableView:editActionsForRowAtIndexPath:方法,我們可以在方法內(nèi)部寫(xiě)好幾個(gè)按鈕,然后放到數(shù)組中返回,那些按鈕的類(lèi)就是UITableViewRowAction
3) 在UITableViewRowAction類(lèi),我們可以設(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開(kāi)發(fā)中UITableview cell 頂部空白的多種設(shè)置方法
以上所述是小編給大家介紹的Android中給UITableView的側(cè)滑刪除增加多個(gè)按鈕的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹
- iOS應(yīng)用開(kāi)發(fā)中UITableView的分割線的一些設(shè)置技巧
- 改變iOS應(yīng)用中UITableView的背景顏色與背景圖片的方法
- 詳解iOS開(kāi)發(fā)中UITableview cell 頂部空白的多種設(shè)置方法
- iOS App中UITableView左滑出現(xiàn)刪除按鈕及其cell的重用
- IOS中UITableView滾動(dòng)到指定位置
- 全面解析iOS應(yīng)用中自定義UITableViewCell的方法
- iOS 11 下適配UITableView 問(wèn)題
- iOS11解決UITableView側(cè)滑刪除無(wú)限拉伸的方法
相關(guān)文章
Android入門(mén)之RelativeLayout、FrameLayout用法分析
這篇文章主要介紹了Android入門(mén)之RelativeLayout、FrameLayout用法分析,需要的朋友可以參考下2014-08-08Android設(shè)備藍(lán)牙連接掃描槍獲取掃描內(nèi)容
這篇文章主要為大家詳細(xì)介紹了Android設(shè)備藍(lán)牙連接掃描槍獲取掃描內(nèi)容,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09ActivityManagerService廣播并行發(fā)送與串行發(fā)送示例解析
這篇文章主要為大家介紹了ActivityManagerService廣播并行發(fā)送與串行發(fā)送示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android實(shí)現(xiàn)圓圈倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圓圈倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08android教程之textview解析帶圖片的html示例
本文介紹的示例適用于android中需要解析帶圖片的htlm數(shù)據(jù),需要的朋友可以參考下2014-02-02Android實(shí)現(xiàn)雷達(dá)View效果的示例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)雷達(dá)View效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android自定義View實(shí)現(xiàn)拖拽效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11