iOS 8 一 tableView右滑顯示選擇

2021-07-24 17:25:52 字數 2534 閱讀 3542

#如何使用uitableviewrowaction實現右滑選擇呢?

1、在ios8以前,我們實現tableview中滑動顯示刪除,置頂,更多等等的按鈕時,都需要自己去實現,在ios8中系統已經寫好了,只要乙個**方法和乙個類就行了;

2、ios8的協議對了乙個方法,返回值是陣列的tableview:editactionforrowatindexpath:方法,我們可以在方法內部寫好幾個按鈕,然後放到陣列中返回,那些按鈕的類就是uitableviewrowaction;

3、在uitableviewrowaction類。我們可以設定按鈕的樣式,顯示文字、背景色和按鈕事件(在block內實現);

4、在**方法中,我們可以常見多個按鈕放到陣列中返回,最先放入陣列的按鈕顯示在最右邊,最後放入的顯示在最左邊;

5、如果自己設定乙個或多個按鈕,系統自帶的刪除按鈕就消失了;

- (bool)tableview:(uitableview *)tableview shouldindentwhileeditingrowatindexpath:(nsindexpath *)indexpath

- (nsarray *)tableview:(uitableview *)tableview editactionsforrowatindexpath:(nsindexpath *)indexpath];

}else if (indexpath.row==1)];

// 新增乙個修改按鈕

morerowaction = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"修改" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

morerowaction.backgroundeffect = [uiblureffect effectwithstyle:uiblureffectstyledark];

}else if (indexpath.row==2)];

// 新增乙個修改按鈕

morerowaction = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"修改" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

morerowaction.backgroundeffect = [uiblureffect effectwithstyle:uiblureffectstyledark];

// 新增乙個傳送按鈕

sanrowaction = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"傳送" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

sanrowaction.backgroundcolor=[uicolor orangecolor];

}else];

// 新增乙個修改按鈕

morerowaction = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"修改" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

morerowaction.backgroundeffect = [uiblureffect effectwithstyle:uiblureffectstyledark];

// 新增乙個傳送按鈕

sanrowaction = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"傳送" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

sanrowaction.backgroundcolor=[uicolor orangecolor];

// 新增乙個傳送按鈕

ok = [uitableviewrowaction rowactionwithstyle:uitableviewrowactionstylenormal title:@"ok鍵" handler:^(uitableviewrowaction *action, nsindexpath *indexpath) ];

ok.backgroundcolor=[uicolor purplecolor];

}// 將設定好的按鈕放到陣列中返回

if (indexpath.row==0) else if (indexpath.row==1)else if(indexpath.row==2)else if(indexpath.row==3)

return nil;

}

參考ios筆記

IOS8 設定TableView分割線

ios8 設定tableview separatorinset 分割線從邊框頂端開始 原創音訊 教主談遊戲第一期 創意能被偷走嗎?在ios8上 tableview setseparatorinset uiedgeinsetsmake 0,0,0,0 不起作用 經過測試加入下面方法 在ios7 8上都...

ios8 系統定位問題

原文 今天在開發的時候發現了乙個ios8的定位問題,執行操作之後,不會呼叫到定位之後的delegate方法中,然後找了一些資料來了解了一下ios8系統下的 定位,發現確實是有所不同的 解決方法 1.在info.plist中新增key nslocationwheninusedescription,允許...

被遺忘的iOS8

b.上個專案中遇到的兩個地方,當年做開發的時候是非常注意的點,但是前幾天都忽略了,塵封的ios8手機,跑程式,崩了,崩了,崩了,崩了,下面總結下吧 只是專案中遇到了,日後有空再慢慢的補充 1.通知監聽者的移除,這個在ios8上是必須要求手動寫 去移除的。2.wkwebview的滑動監聽,一定要手動移...