2015-02-24 29 views
56

'daki boş hücreler nasıl kaldırılır Merhaba, iki statik hücreyle birlikte TableViewController var, ancak görüntülendiğinde, iki statik hücreyi ve sonra tablo görünümü için tüm diğer boş hücreleri gösterir. Ancak bu hücreleri işe yaramaz gibi göstermek istemiyorum. İki statik hücreden başka hücrelerini nasıl gizlerim?TableViewController, iOS - Swift

tableView.tableFooterView = UIView() 

cevap

216

bu kod satırını ekleyin. Elma belgelerine gereğince:

var tableFooterView: UIView? 

Dolayısıyla bu özellik için verilerinizin altında hiçbir şey gösterecektir boş UIView() ayarı.

Çok gibi varsayılan değere tableFooterView sıfırlayarak boş satırlar geri getirebilir:

tableView.tableFooterView = nil 
+0

Kısa ve etkili! Cazibe gibi çalıştı! – yogipriyo

+3

Bu ne anlama geliyor? Detaylandırır mısınız? –

+0

Bu yanıt Swift 3'te hala geçerlidir. Ayrıca, tablo görünümü arka plan rengini ana görünümler arka plan rengi ile aynı şekilde ayarlarsanız, altbilgi gitmiş gibi görünmesini sağlar. –

4

Bu eklemek için, özelliğine boş UIView() nesneyi ayarlarken çünkü UIView() için tableFooterView ayar satırları kaldırır olmasının nedeni: senin viewDidLoad() işlevinde

+2

Üzgünüm, ama bir kesmek gibi görünmüyor mu? – AOY

+2

Hayır, bu bunu yapmak için tamamen geçerli bir yoldur. Özel bir tableFooterView ayarlamak isterseniz, tableFooterView uygulamasına ayarlamadan önce özel bir UIView oluşturursunuz. Daha sonra sıfırlamak için sıfırlamak sadece varsayılan değerine geri döner. – toast

+0

Anladım. Teşekkürler) Ben sadece – AOY

2

Sadece masa görünümün altbilgi alanına bir görünüm sürükleyerek Film Şeridi'nde de bunu başarmak ve sonra olabilir yüksekliği ve arka plan rengini 1'e ayarlayın ve özellik denetçisini kullanarak sırasıyla temizleyin.

(Bu ikisinden biri ya da sadece Aksi takdirde, sadece bunu yapmak. Nedense Grup stil ayarını kullanmak istemeyen olamaz varsayar.)

1
tableView.tableFooterView = UIView.init(frame: CGRect.zero) 

Çağrı viewWillAppear iç bu kod yöntem. Ve

0

Basitçe eklemek çalışacaktır:

tableView.tableFooterView = UIView() 

Açıklama:

Bu tamamen geçerli olduğunu ve özelliğine boş UIView() nesnesi ayarlarken yana ayarlanması, hızlı 3.By içinde mükemmel çalışıyor UIView() için tableFooterView, satırları kaldırır.

+0

hızlı yeni gibi benim için biraz garip görünüyor kabul edilen cevap farkı nedir? –

1

UITableView'unuzu seçin, özellik denetçisine gidin ve stili Gruplandırılmış olarak değiştirin.

-1

Tableview.tableFooterView = UIView() yöntemini denedim ve benim için çalışmadı. Özel bir TableViewViewCell kullanıyorum, belki de bu yüzden.

Bir hack buldum tho. Benim fonk numberOfRowsInSection olarak

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return yourArrayClass.count - 1 
} 

Ve bu benim ekstra boş özel artık görüntülenmez UITableViewCell yapar. Tabii ki ekstra boş olanı. Daha fazla hücre ekleyerek biraz daha test edeceğim. Referans olarak, cellForRowAt işlevinin içinde Swift 3, Firebase, özel bir hücre sınıfı kullanıyorum.

+0

Bu, dizideki son öğeyi göstermeyecek. – elarcoiris

1

Swift 4 sizin View Controller sınıfına Horset cevabı, Storyboard'unuza içinde Tablo adlı ilk kontrol sürükle gerekçe olarak ve tableView denilen bir çıkış yaratır.

override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.dataSource = self 
    tableView.delegate = self 

    tableView.tableFooterView = UIView() 
} 
0

hızlı yukarıdaki cevaplar dayanarak:

@IBOutlet weak var tableView: UITableView! 

Ardından, View Controller içinde viewDidLoad bu gibi görünmelidir.

tableView.tableFooterView = UIView(frame: .zero)