SORU
29 Mart 2010, PAZARTESİ


Nasıl bir hücre genişliğini ayarlamak için gruplandırılmış tarzı bir UİTableView içinde

Yaklaşık 2 gündür bunun üzerinde çalışıyorum, seninle benim öğrendiklerini paylaşmak düşündüm.

Soru: gruplandırılmış bir UİTableView bir hücrenin genişliğini küçültmek mümkün mü?

Cevap: Hayır.

Ama bu sorundan kurtulabilirsiniz iki yolu vardır.

Çözüm #1: ince Bir tablo Olası tablo daha küçük olacak, böylece tableView çerçevesinde değiştirebilir. Bu UİTableView içinde hücre azaltılmış genişliği ile işleme neden olur.

Bunun için bir çözüm şöyle olabilir:

-(void)viewWillAppear:(BOOL)animated
{
    CGFloat tableBorderLeft = 20;
    CGFloat tableBorderRight = 20;

    CGRect tableRect = self.view.frame;
    tableRect.origin.x  = tableBorderLeft; // make the table begin a few pixels right from its origin
    tableRect.size.width -= tableBorderLeft   tableBorderRight; // reduce the width of the table
    tableView.frame = tableRect;
}

Çözüm #2: Sahip hücreleri görüntüler işlenmiş

Burada açıklanan bu çözüm: http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

Bu bilgiler sizin için faydalı olur umarım. Bana yaklaşık 2 gün bir sürü ihtimal denemek için aldı. Bu geriye kalanlar.

CEVAP
6 EYLÜL 2011, Salı


Daha iyi ve daha temiz bunu başarmak için bir yol UİTableViewCell sınıflara ve bu gibi: -setFrame: yöntemi geçersiz kıldı

- (void)setFrame:(CGRect)frame {
    frame.origin.x  = inset;
    frame.size.width -= 2 * inset;
    [super setFrame:frame];
}

Neden daha iyidir? Diğer ikisi kötü.

  1. Tablo görünümü -viewWillAppear: genişliği ayarlayın

    Her şeyden önce, bu güvenilir değil, superview veya üst görünüm denetleyicisi -viewWillAppear: çağırıldıktan sonra tablo çerçeve görünümü daha da ayarlayabilir. Tabii, bir de senin UİTableView -setFrame: burada UİTableViewCells için ne gibi alt kılabilirsiniz. Ancak, sınıflara UİTableViewCells yaygın, ışık, ve Apple bir çok yolu vardır.

    Eğer UİTableView backgroundView varsa ikinci olarak, kendi backgroundView birlikte daralmış olmak istemezsin. UİTableView genişliği daraltmak süre backgroundView genişliği tutulması başta çalışma izni, superview ötesinde subviews genişleyen çok zarif bir şey olmadığını söylemiyorum bile önemsiz değildir.

  2. Özel hücre sahte için daha dar bir genişlik işleme

    Bunu yapmak için, yatay marjları ile özel arka plan görüntüleri hazırlamak zorunda, ve düzeni hücre subviews kendini marjları karşılamak için. Eğer sadece tüm hücre genişliğini ayarlamak karşılaştırıldığında, autoresizing sizin için tüm işleri yapacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 99being99

    99being99

    2 EYLÜL 2008
  • Hak5

    Hak5

    7 EYLÜL 2005
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009