如何使用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 ...