iOS tableView右滑顯示選擇

2022-02-06 09:42:19 字數 3104 閱讀 7304

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

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

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

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

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

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

設定tableview可以編輯

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

return yes;

uitableviewrowaction的使用方法:

+ (instancetype)rowactionwithstyle:(uitableviewrowactionstyle)style title:(nullable nsstring *)title handler:(void (^)(uitableviewrowaction *action, nsindexpath *indexpath))handler;

重寫uitableviewdelegate的

- (nullable nsarray*)tableview:(uitableview *)tableview editactionsforrowatindexpath:(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;

}

touch左滑右滑

原理 1 當開始乙個touchstart事件的時候,獲取此刻手指的橫座標startx和staery 2 當觸發touchmove事件的時候,再獲取此時手指的橫座標moveendx和縱座標moveendy 最後,通過兩次獲取的座標差值來判斷手指在手機螢幕上的滑動方向。body on touchstar...

IOS TableView裡面cell的顯示動畫

前言 我寫了乙個簡單的動畫集tableviewanimationkit,只需要一行 就可以讓tableview實現動畫 目前有大概10個動畫,後續會優化增加。正文 一 效果展示 二 使用方法 tableviewanimationkit呼叫各個動畫的方法都為類方法,只需一行 就可以呼叫。eg 1 ta...

右滑退出active

例項.gif getswipebacklayout setenablegesture false 禁止右滑退出name android windowistranslucent falseitem androidmanifest檔案中.png vaues資料夾下的styles檔案中.png name ...