2013-10-01 18 views
30

UITableView özel UITableViewCells vardır ve özel UITableViewCell bu hattı kullanarak ayırıcılar ince ayarlayabilirsiniz:iOS7 son hücreye tam genişlik ayırıcı aşağıdaki

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0); 

Ancak bölümünün altındaki hücre Ayarladığım özel UIEdgeInsets'u geçersiz kılan bir varsayılan ayırıcı var.

tüm ayırıcıların aynı genişlikte olmasını isterim, ayırıcıları elle yeniden çizmeden bunu yapmanın herhangi bir yolu var mı?

UITableView with wide section separator in iOS7

cevap

12

kullanılarak UITableViewStyle-UITableViewStylePlain ve set boş altbilgiler ayarlamaktır 'un tüm özellikleri, ancak bana tam genişlik ayırıcı olmadan bölüm verir.

enter image description here

+1

Bu güzel bir çözüm ancak varsayılan ayırıcıları gizlemeyi ve tablo hücrelerimin altına 1px görünümü eklemeyi tercih ediyorum. – Sulthan

+6

Aynı duruma sahibim ve son hücreye dokunana kadar çalışıyor. Son ayırıcı sonra tekrar tam genişlik ve kod değiştirerek '' [self.tableView setSeparatorInset: UIEdgeInsetsMake (0, 15, 0, 0)] 'yardımcı olmadı. Herhangi bir çözüm? – lvp

+1

"viewForFooterInSection" aslında gereksizdir. "HeightForFooterInSection" olarak döndürülen .01f, hile yapmak gibi görünüyor. Daha fazla sarkan ayırıcı yok! – Nuthatch

2

Kullanım yerine tek tek hücreler üzerinde bir tableView kendisinde separatorInset mülk. TableView'ın separatorInset'i, hücreler tarafından geçersiz kılınabilecek varsayılan eki ve ayrıca alttaki "ekstra" hücrelerin ekini ayarlar. UITableViewStylePlain sağlamaz çünkü

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
{ 
    return [[UIView alloc] initWithFrame:CGRectZero]; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return 0.01f; 
} 

Bu bazıları için tatmin edici bir çözüm olmayacaktır: Ben tek gerçek çözüm buldum bazı denemeler sonra

+6

tableView en 'separatorInset' Her bölümün başında ve sonunda ayırıcılar etkilemez değişen. Bunlar, tablonun genişliğini kalıcı olarak doldurur. 'SeparatorInset'in değiştirilmesi sadece orta ayırıcıları etkiler. –

2

masayı boş Altbilgiyi ver: Ben çözüm buldum bazı denemeler sonra

self.tableFooterView = [[UIView alloc] init] 
+0

İnsanların bunu nasıl kullanmadığını göremiyorum. Bu, diğer yöntemler bana çok fazla sorun verdiğında kusursuz bir şekilde çalıştı –

4

! tableFooterView böyle ayırıcı örtülebilir: -iOS7 içinde maalesef

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]; 
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)]; 
v2.backgroundColor = [UIColor whiteColor]; 
v.backgroundColor = [UIColor whiteColor]; 
[v addSubview:v2]; 
self.tableView.tableFooterView = v; 
+0

Bu benim için çalıştı! Ayrıca viewForFooterInSection'da 'v' döndürdüm. Teşekkürler! – Jacob

İlgili konular