2016-05-06 22 views
9

Mam ustawione wiele przewijanych w poziomie UICollectionView (s), w ramach UITableView, dzięki czemu mogę przewijać w pionie.Rozmiar komórki widoku tabeli dla poziomego widoku UICollectionView w widoku UITableView

Jedną z napotkanych przeze mnie kwestii jest to, że wysokość rzędów dla widoku tabeli jest wywoływana, zanim się zorientuję, jak wysokie powinny być (chcę, aby cała wysokość każdego UICollectionView wypełniała komórkę widoku tabeli).

Jak mam rozwiązać ten problem?

Odpowiedz

1

Moja sugestia to utworzenie niestandardowego układu widoku kolekcji. Następnie może obliczyć rozmiar komórki i otrzymać powiadomienie, gdy zmieni się rozmiar widoku kolekcji.

+0

W jaki sposób zostanie przekazany do widoku tabeli? Czy możesz podać więcej szczegółów (np. Przykłady kodu)? – Boon

1

Za pomocą tej funkcji można określić wysokość posiadanego collectionView.

Zadzwoń pod numer collectionViewContentSize na swoją właściwość aCollectionView.collectionViewLayout i uzyskaj wysokość i szerokość zawartości w postaci CGSize.

LUB

-(CGFloat)collectionViewHeight 
{ 
    [collectionView layoutIfNeeded]; 

    return [collectionView contentSize].height; 
} 
+0

Jak to jest przekazywane do widoku tabeli? Czy możesz podać więcej szczegółów (np. Przykłady kodu)? – Boon

1

Tworzenie zmiennej dla swojego wzrostu i powrót tej zmiennej w metodzie heightForRowAtIndexPath. Następnie ponownie załaduj tableView, gdy już zorientujesz się, jaki jest Twój wzrost.

var height: CGFloat = 44 

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return height 
} 

func something() { 

    height = 1234//Or whatever your height should be 
    self.table.reloadData() 

} 
Powiązane problemy