UITableView'ü düzenlerken “-” (Sil) düğmesini gizlemenin herhangi bir yolu var mı


97

İPhone uygulamamda, kullanıcının yalnızca satırları yeniden sıraya koymasına izin verilen, silme izni verilmeyen düzenleme modunda bir UITableView var.

Yani TableView'dan "-" kırmızı düğmeyi gizlememin herhangi bir yolu var mı? Lütfen bana haber ver.

Teşekkürler

Yanıtlar:


259

İşte hücrenin girintisi (0 sol hizalama) olmadan tam çözümüm!

- (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;
}

43

Swift 3 , sadece gerekli işlevlerle kabul edilen cevaba eşdeğer:

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

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

4

Bu, girintiyi durdurur:

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

3

Özel onay kutularının Düzenleme modunda görünmesini istediğim, ancak '(-)' sil düğmesini istemediğim benzer bir sorunla karşılaştım.

Stefan'ın cevabı beni doğru yöne yönlendirdi.

Bir geçiş düğmesi oluşturdum ve bunu bir düzenlemeAccessoryView olarak Hücreye ekledim ve bir yönteme bağladım.

- (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;
}

Bu temsilci yöntemlerini uyguladı

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

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

0

Düzenleme sırasında yalnızca (-) noktasını gizlemek istediğinizde, ancak bunu uyguladığınız kullanıcılar için silme işlevini UITableViewDelegateprotokol uyumlu sınıfınızda korumak isteyebilirsiniz.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.editing) return UITableViewCellEditingStyleNone;
    return UITableViewCellEditingStyleDelete;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.