UITableView如何實(shí)現(xiàn)左滑刪除功能蛾洛?
步驟如下:
1.實(shí)現(xiàn)UITableView數(shù)據(jù)源代理中的一個(gè)方法即可澈段。方法名稱:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;
2.示例代碼如下:
// 1.只要實(shí)現(xiàn)這個(gè)方法,就會(huì)擁有左滑刪除功能 2.點(diǎn)擊"左滑出現(xiàn)的按鈕"會(huì)調(diào)用這個(gè)方法
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
// 修改模型
[self.modeArray removeObjectAtIndex:indexPath.row];
// 刷新表格
[self.shoppingCartTV deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
拓展
單純的實(shí)現(xiàn)上面一個(gè)方法實(shí)現(xiàn)左滑刪除功能,對(duì)于我們開發(fā)者來說橄登,往往是不夠的抓歼,很多時(shí)候我們需要自定義刪除按鈕的樣式,例如:文字拢锹、背景圖片等谣妻。
-
自定義刪除按鈕,示例代碼如下:
-
注意:自定義刪除按鈕卒稳,首先需要先自定義UITabelViewCell,然后再自定義的cell類內(nèi)部重寫
layoutSubview:
方法
-
注意:自定義刪除按鈕卒稳,首先需要先自定義UITabelViewCell,然后再自定義的cell類內(nèi)部重寫
#pragma mark - layoutSubview
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView *subView in self.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) {
// 當(dāng)遍歷到存放刪除按鈕的控件時(shí)進(jìn)來
for (UIButton *btn in subView.subviews) {
// btn的類型是_UITableViewCellActionButton類型,我們只需要把它當(dāng)UIButton看待就好了
if ([btn isKindOfClass:[UIButton class]]) {
// 當(dāng)遍歷到刪除按鈕時(shí)進(jìn)來
if (btn) {
[btn setTitle:@"" forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"shanchu"] forState:UIControlStateNormal];
[btn sizeToFit];
btn.frame = CGRectMake(0, 0, btn.frame.size.width, subView.gfk_height);
btn.backgroundColor=[UIColor colorWithHexString:@"#0D588A"];
}
}
}
}
}
}