SORU
10 EYLÜL 2014, ÇARŞAMBA


UİTableView ayırıcı daraltma 0 çalışmıyor iOS 8

UITableView'nın ayırıcı daraltma 0, 0 Sol. Sağ özel değerleri için set - nerede bir uygulamam var Bu tamamen iOS 7'de çalışıyor.x, ancak iOS 8.0 ayırıcı daraltması sağ 15 varsayılan olarak ayarlanmış olduğunu görüyorum. Xib dosyaları 0 için ayarlanmış olsa bile yine de yanlış gösterir.

Nasıl UİTableViewCell ayırıcı boşluklarını kaldırabilirim?

CEVAP
16 EYLÜL 2014, Salı


iOS 8.0 hücreleri VE Tablo görünümleri layoutMargins özelliği tanıttı.

Bu özellik kontrol emin atamadan önce yapmanız gereken bu yüzden iOS 7.0 mevcut değil.

Ayrıca, Apple eklediözellikcep için Tablo Görünümü, kenar boşluğu ayarları devralmasını engellemek olacaktır. Bu özelliği ayarlandığında, hücrelerin kendi boşluklarını tablo görünüm bağımsız olarak yapılandırmak için izin verilir. Geçersiz kılma gibi düşün.

Bu özellik preservesSuperviewLayoutMargins denir ve NO Bu ayar hücre layoutMargin layoutMargin TableView üzerinde ayarlanır ne olursa olsun geçersiz kılmak için ayarı sağlar. Bu zaman kazandırır, hem de (Tablo Görünüm ayarlarını değiştirmek zorunda değilsinizve daha kısa. Ayrıntılı bir açıklama için Mike Abdullah cevabına bakın lütfen.

NOT: aşağıda ne için temiz bir uygulamasıdırhücre düzeyinde kenar boşluğu ayarıMike Abdullah'ın cevap. ifade edildiği gibi Hücrenin preservesSuperviewLayoutMargins=herhangi bir ayar Tablosu Görünümü hücre ayarları geçersiz kılmaz sağlayacaktır. Eğer gerçekten tüm tablo görünümünü tutarlı boşluklarını sahip olmak istiyorsanız, lütfen kodunuzu buna göre ayarlayın.

Hücre kenar boşlukları Kur:

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Remove seperator inset
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
           [cell setSeparatorInset:UIEdgeInsetsZero];
    }

    // Prevent the cell from inheriting the Table View's margin settings
    if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
        [cell setPreservesSuperviewLayoutMargins:NO];
    }

    // Explictly set your cell's layout margins
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
    }
}

HAYIR cep preservesSuperviewLayoutMargins özelliği ayarıgerekirhücre kenar boşlukları geçersiz kılmasını tablo görünümünü önlemek. Bazı durumlarda, düzgün değil gibi görünüyor.

Eğer başarısız olursa, kaba kuvvet Tablo boşluklarını görebilirsiniz:

-(void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];

    // Force your tableview margins (this may be a bad idea)
    if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [self.tableView setSeparatorInset:UIEdgeInsetsZero];
    }

    if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
        [self.tableView setLayoutMargins:UIEdgeInsetsZero];
    }
} 

...ve işte! Bu iOS 7 ve 8 üzerinde çalışması gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008