programing

UITableView를 편집하는 동안“-”(삭제) 버튼을 숨기는 방법이 있습니까?

nasanasas 2020. 8. 29. 11:10
반응형

UITableView를 편집하는 동안“-”(삭제) 버튼을 숨기는 방법이 있습니까?


내 아이폰 앱에는 편집 모드의 UITableView가 있는데, 여기서 사용자는 삭제 권한이없는 행만 재정렬 할 수 있습니다.

그래서 내가 TableView에서 "-"빨간 버튼을 숨길 수있는 방법이 있습니다. 알려주세요.

감사


여기에 셀의 들여 쓰기 (0left align)가없는 완전한 솔루션이 있습니다!

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

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone; 
}

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}


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

필요한 기능만으로 허용되는 답변에 해당하는 Swift 3 :

func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
    return false
}

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
    return .none
}

이렇게하면 들여 쓰기가 중지됩니다.

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

사용자 정의 확인란이 편집 모드에 나타나고 '(-)'삭제 버튼이 아닌 유사한 문제에 직면했습니다.

스테판의 대답은 나를 올바른 방향으로 이끌었습니다.

토글 버튼을 만들고 셀에 editingAccessoryView로 추가하고 메서드에 연결했습니다.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    ....
    // Configure the cell...

    UIButton *checkBoxButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 32.0f)];
    [checkBoxButton setTitle:@"O" forState:UIControlStateNormal];
    [checkBoxButton setTitle:@"√" forState:UIControlStateSelected];
    [checkBoxButton addTarget:self action:@selector(checkBoxButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

    cell.editingAccessoryType = UITableViewCellAccessoryCheckmark;
    cell.editingAccessoryView = checkBoxButton;

    return cell;
}

- (void)checkBoxButtonPressed:(UIButton *)sender {
    sender.selected = !sender.selected;
}

이러한 대리자 메서드 구현

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}

참고URL : https://stackoverflow.com/questions/3020922/is-there-any-way-to-hide-delete-button-while-editing-uitableview

반응형