2015-10-20 67 views
8

我搜索了幾篇文章,但沒有找到我要找的內容。基本上,我想在每一行顯示刪除按鈕,但我不想使用UITableView.editing屬性。 因爲它看起來像這樣;UITableViewCell,顯示輕掃式刪除按鈕,不用刷卡

enter image description here

會有 「編輯」 按鈕。當用戶點擊它時,刪除按鈕將看起來像滑動式。

是否有機會顯示刪除按鈕這樣的;

enter image description here

也許是有一些方法來處理它。否則,我將爲此創建自定義視圖。

感謝您的建議。

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Return YES if you want the specified item to be editable. 
    return YES; 
} 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 

     //Do something... 
    } 
} 
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
      editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 

    return UITableViewCellEditingStyleDelete; 

} 
+0

做ü要刪除像的tableview圖像2按鈕? –

+0

@bhavinramani是的,我想刪除按鈕將看起來像image2。將會有「編輯」按鈕,當你點擊它時,所有行應該看起來像image2。 –

+0

自定義tableview單元格是你唯一的選擇,因爲單元格末端的刪除按鈕一次不會顯示在tableview中的所有單元格中(正如你在屏幕截圖中闡述的那樣) – viral

回答

2
  • 添加一個布爾屬性:@property BOOL didPressEdit;
  • 添加UIButtonUITableViewCell
  • 當按下編輯,didPressEdit變得TRUEUITableView重新加載,這樣cell.deleteButton.hidden = !didPressEdit;這使得所有刪除可用
  • 按鈕按下時刪除,從數據源數組中刪除對象,重新加載tableview

希望這會有所幫助

0

您可以使用UITableView委託方法來請求這些操作。實施此方法如下:

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewRowAction *modifyAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Delete" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) { 
    // Respond to the action. 
    }]; 
    modifyAction.backgroundColor = [UIColor blueColor]; 
    return @[modifyAction]; 
} 

您當然可以返回多個操作並自定義文本和背景顏色。

實現這種方法也需要使行編輯:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
     if (editingStyle == UITableViewCellEditingStyleDelete) { 
      [self.objects removeObjectAtIndex:indexPath.row]; 
      [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
     } else if (editingStyle == UITableViewCellEditingStyleInsert) { 
      // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view. 
     } 
    } 

你需要調用您的編輯按鈕,點擊該方法editActionsForRowAtIndexPath。

-(void)buttonTouched:(id)sender{ 

     UIButton *btn = (UIButton *)sender; 
     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:btn.tag inSection:0]; 
     [self tableView:self.tableView editActionsForRowAtIndexPath:indexPath]; 
    } 

    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
     // Return NO if you do not want the specified item to be editable. 
     return YES; 
    } 
+0

我不確定你理解了這個問題。 OP特別需要使刪除按鈕可用而無需輕掃,並且可以在編輯按鈕的點擊下查看tableview中的所有行。我沒有看到您提供的答案所取得的成就。 – viral

2
-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewRowAction *moreAction2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"Edit" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){ 
     [self.heartCartTabel setEditing:NO]; 
     [self editButtonClicked:indexPath.row]; 
    }]; 
    moreAction2.backgroundColor = [UIColor blueColor]; 

    UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Delete" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){ 

     [self tableView:self.heartCartTabel commitEditingStyle: UITableViewCellEditingStyleDelete forRowAtIndexPath:indexPath]; 
     //  [self.heartCartTabel deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    }]; 

    return @[deleteAction, moreAction2]; 
} 

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return YES; 
} 

- (IBAction)editButtonClicked:(int)indexNumber { 

} 
相關問題