2012-12-02 39 views
7

Tôi có chức năng cho "Vuốt để xóa" TableViewCell. Tôi muốn tùy chỉnh nút Xóa. enter image description hereTùy chỉnh nút xóa trong UITableView

Điều này có thể thực hiện được không và cách truy cập vào Xóa nút?

+1

thử các http://stackoverflow.com/q/8603431/194544 http://stackoverflow.com/q/1615469/194544 – beryllium

+0

@beryllium nên lời khuyên của bạn sẽ tạo ra một tế bào tùy chỉnh? Nhưng tôi đã xây dựng ô, tôi muốn đặt một trình nhận dạng cử chỉ, sau đó biến nó thành một ô tùy chỉnh. – Spire

+0

Bạn muốn hành động cho nút xóa hoặc bạn cần thay đổi nút xóa –

Trả lời

6

Phương pháp này sẽ được gọi khi người dùng thực hiện các hành động swipe

Chỉ Nơi này trong CustomCell bạn

- (void)willTransitionToState:(UITableViewCellStateMask)state 
    { 
     [super willTransitionToState:state]; 
     if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) 
     { 
      for (UIView *subview in self.subviews) 
      { 
       if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) 
       { 
        UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
        [deleteBtn setImage:[UIImage imageNamed:@"arrow_left_s11.png"]]; 
        [[subview.subviews objectAtIndex:0] addSubview:deleteBtn]; 
       } 
      } 
     } 
    } 

Bạn không nên hãy thử điều đó, bạn không được phép thay đổi mặc định của Apple lượt xem .

+0

Tôi đã tìm thấy một cách khác để xóa, nhưng cảm ơn vì nỗ lực của bạn. Tôi sẽ được đào tạo về vấn đề này vì tôi sẽ cần nó cho một dự án khác. thx ** Một điều, tôi không sử dụng ô tùy chỉnh, đó là lý do tại sao tôi cần thông tin về cách thay đổi giao diện DELETE, trông giống như nút Nudge ** – Spire

+0

nó được viết rõ ràng trong câu hỏi – Spire

+7

nó không hoạt động trong ios 7 – Kiddo

-1

Hãy thử điều này:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
    // Your Code 
    } 
} 
+0

Ok và cách gọi nút Xóa ở đây trong phần '// Mã của bạn '? Làm thế nào tôi có thể thay đổi nó trong 'UIButtonTypeCustom'? – Spire

+0

Đây là chức năng inBuilt của Bảng, vì vậy bạn có thể làm bất cứ điều gì bạn muốn, như loại bỏ giá trị từ mảng cho ví dụ: [idArray removeObjectAtIndex: indexPath.row]; trong đó idArray là NSMutableArray có id. Cuối cùng, chỉ cần tải lại Bảng của bạn bằng cách gọi [tableView reloaddata]; nơi tableView là tên bảng của bạn. –

+0

Tôi đã chỉnh sửa nhận xét của mình – Spire

12

Nếu bạn chỉ cần thay đổi tiêu đề của nút, bạn chỉ cần thêm phương thức titleForDeleteConfirmationButtonForRowAtIndexPath.

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return @"NewButtonName"; 
} 
+0

đó là công việc tuyệt vời cho tôi:) cảm ơn bạn! – slboat

Các vấn đề liên quan