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
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.
Bir şekilde iOS UİTableView hücreleri ...
UİTableView, ayarlamak için renk Ayırı...
Kullanarak [UİColor colorWithRed:yeşil...
Bir UİTableView boş hücreler arasındak...
Bir şekilde bir UİTableView gelen ayır...