2011-09-06 36 views
6

Gruplandırılmış bir UITableView'da sol/sağ kenar boşluğu nasıl küçültülür/kaldırılır?Gruplandırılmış bir UITableView'da sol/sağ kenar boşluğunu nasıl azaltıp/kaldıralım?

Özel bir görünüm tanımlamadan, yani doğrudan bir UITableViewController kullanarak bunu yapmanın bir yolu var mı?

Burada hücreler arasındaki boşluğa dair soru sormuyorum, gördüğünüz hücrelerin sağında soldaki boşluk &.

EDIT 1: açıklık getirebilir:

  • zaten özel bir UITableViewCell ("@interface AppointCell: UITableViewCell") sahip benim çözümde
  • Bunları özel UITableViewCell en solunda ve sağında alanı düşünmek Ancak, doğrudan hücrenin kendisinden değil - Ben bunu sadece hücre etrafında bir sınır koyduğumda söylüyorum (bu katman aracılığıyla) - bunu görebiliyorum - bu nedenle uzay UITableView'ın kendisinden (hücrelerden değil) olduğu gibi görünüyor
  • bir daha işaret etmelidir Tablo görünümü için GROUPED modunu kullanıyorum

cevap

9

Sure; sadece UITableView çerçevesini ayarlayın, böylece süper sınırından biraz daha geniş ve sol sınırının biraz solunda (diğer bir deyişle negatif X yönünde).

+0

Doğru yaklaşım gibi görünüyor. Bu çizgiyi '-viewWillAppear'ınıza yerleştirmeyi deneyebilirsiniz: animated:'; İlk yüklendiğinde görünümünüzün boyutu doğru ayarlanmamış olabilir, ancak denetleyicinizin görünmek üzere olduğunu bildirmesi gerekir. –

+0

arr evet ... işe yaradığı görüldü – Greg

+0

Bu yaklaşım en azından şimdi iOS 7 ve 8'de çalışmıyor gibi görünüyor. İnsanların bunu başarmak için kullandıkları yeni bir yaklaşım var mı? –

1

Masanızın sol ve sağ tarafındaki dolgulara sahip özel bir hücre görünümü oluşturmanız gerektiğine inanıyorum.

+0

Teşekkürler - EDIT 1 yanıtımı not edebilir misiniz ... – Greg

+0

Ah, bu ilginç bir soru! Tablo görünümünün CGRect Çerçevesinde bir yeniden boyutlandırma yapabilirseniz ... –

+0

evet ... Bunu deneyebilir ve nasıl gidebileceğimi görebilirim – Greg

1

Ayrıca hücreyi kendisinden biraz daha geniş yapabilirsiniz. Bu yöntemi UITableViewCell alt sınıfınıza ekleyin.

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

Ofsetin 9 punto olması gerektiğine inanıyorum. Bir yan not olarak: Hücre için özel bir arka plan belirlerseniz, bunun seçilen Arka Plan alanını da ayarlamanız gerekebilir.

İlgili konular