2015-06-22 17 views
5

Mam UITableView, I'm dodaje tableFooterView ładowane z XIB.Jak ustawić wysokość do tableFooterView załadowany z xib

var footer = NSBundle.mainBundle().loadNibNamed("AFooterView", owner: self, options: nil).first as! AFooterView 
self.tableView.tableFooterView = footer 

Działa to dobrze, ale muszę mieć możliwość ustawienia wysokości dla tej stopki. Xib ma tylko UIImageView wyśrodkowany w pionie i poziomie, dzięki czemu dostosuje się niezależnie od wysokości widoku.

Nie mam pojęcia, jak to zrobić z AutoLayout? Jaka byłaby właściwa ścieżka do naśladowania?

+0

można dodać wylot do przymusu, który zarządza wysokość widoku i zmienić jego niezmienny, aby uzyskać żądany rozmiar - przed przypisaniem go do 'tableFooterView' –

+0

Czy istnieje powód, dla którego nie ustawisz wysokości widoku stopki bezpośrednio w twoim xib? – JJC

+0

Nie mogę ustawić tego w Xib, ponieważ wysokość się zmienia, nie wiem jak to zrobić w sposób automatyczny z autolayout ... @JJC – Andres

Odpowiedz

7

Przepraszam za zamieszanie, tutaj jest aktualizowany odpowiedź:

Wiem, że można to zrobić przez ustawienie wysokość ramy, ale może również pracować z układem automatycznego tylko przez ponowne przypisanie stopkę widok po załadowaniu obrazuViewView.

// either let auto layout calculate the frame, or set the frame yourself 
// I set the width to an arbitrary size but it doesn't seem to matter, 
// it will automatically be adjusted by the tableview when you assign it 
CGFloat width = 100; 
CGFloat height = 500; 
footerView.frame = CGRectMake(0, 0, width, height); 
// this is the "trick": re-assign the footerView after its size has been updated 
// so that the tableView will show it correctly 
tableView.tableFooterView = footerView; 

Aby uzyskać więcej informacji, zobacz Resizing a UITableView’s tableHeaderView

Oryginalny odpowiedź rozmawialiśmy o stopkach przekroju, nie były Table View stopki

+0

Przepraszamy za zamieszanie; Jeśli masz już ustawione i obliczone wszystkie ograniczenia (działa również, jeśli ustawiłeś wysokość ramy samodzielnie), po prostu przypisz ponownie widok stopki do tabeli. Tabela rozpozna, że ​​ma nową stopkę i ponownie tworzy układ potrzebny do prawidłowego rozmiaru stopki: 'yourTableView.tableFooterView = yourFooterView;' – Velociround