編輯:關於Android編程
一. 需求:
cell的側滑刪除默認只有一個刪除按鈕, 給側滑添加多個按鈕, '刪除', '置頂', '更多'.
二. 實現說明:
1) 我們在使用一些應用的時候,在滑動一些聯系人的某一行的時候,會出現刪除、置頂、更多等等的按鈕,在iOS8之前,我們都需要自己去實現。但是到了iOS8,系統已經寫好了,只需要一個代理方法和一個類就搞定了
2) iOS8的協議多了一個方法,返回值是數組的tableView:editActionsForRowAtIndexPath:方法,我們可以在方法內部寫好幾個按鈕,然後放到數組中返回,那些按鈕的類就是UITableViewRowAction
3) 在UITableViewRowAction類,我們可以設置按鈕的樣式、顯示的文字、背景色、和按鈕的事件(事件在Block中實現)
4) 在代理方法中,我們可以創建多個按鈕放到數組中返回,最先放入數組的按鈕顯示在最右側,最後放入的顯示在最左側
5) 注意:如果我們自己設定了一個或多個按鈕,系統自帶的刪除按鈕就消失了.
三. 代碼實現:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { // 添加一個'刪除'按鈕 UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"刪除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) { NSLog(@"點擊了'刪除'"); // 1. 更新數據 // 2. 更新UI // [tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic]; }]; // 添加一個'置頂'按鈕 UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置頂" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) { NSLog(@"點擊了'置頂'"); // 1. 更新數據 // 2. 更新UI //NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section]; //[tableView moveRowAtIndexPath:indexPathtoIndexPath:firstIndexPath]; }]; topRowAction.backgroundColor = [UIColor blueColor]; // 添加一個'更多'按鈕 UITableViewRowAction *moreRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) { NSLog(@"點擊了'更多'"); [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle]; }]; moreRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; //將設置好的按鈕放到數組中返回 return @[deleteRowAction, topRowAction, moreRowAction]; }
相關閱讀:
詳解iOS開發中UITableview cell 頂部空白的多種設置方法
IOS中UITableView滾動到指定位置
以上所述是小編給大家介紹的Android中給UITableView的側滑刪除增加多個按鈕的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
相關在Android中,BroadcastReceiver是一套用來實現組件之間的通信機制,它是基於消息發布和訂閱機制,可以用在不同線程之間組件的通信,也可以跨進程進行組
TabActivity在API13之後被fragment替代了,所以不建議使用效果:點擊頭像標簽,進行切換。 代碼:https://github.com/ldb
如果我們在文件浏覽器中點擊一個文件,然後點擊它,會彈出一個列表給你選擇 如果使自己的應用也出現在這個列表上,必須在menifest的這個act
目標:學習時間日期和時鐘的設置 picker的計算機專業解釋是“選擇器”。 簡單翻譯一下: TimePicker 時間選擇器 DatePicker 日期選擇器 Analo