2013-06-09 12 views
21

Mam UICollectionView, przycisk, który tworzy nową komórkę w widoku kolekcji. Chcę, aby UICollectionView dopasował rozmiar do rozmiaru treści (gdy jest jedna lub dwie komórki, wtedy UICollectionView jest krótki, jeśli jest dużo komórek, UICollectionView jest wystarczająco duży).Autoresize Wysokość UICollectionView w celu dostosowania do rozmiaru zawartości

wiem jak uzyskać rozmiaru zawartości:

collectionView.collectionViewLayout.collectionViewContentSize

Ale nie mam pojęcia, gdzie aby skorzystać z tej wartości. Byłbym wdzięczny, gdyby ktoś mi pomógł dowiedzieć się, jak ustawić UICollectionView w automatycznej regulacji wysokości.

UPD: wydałem na GitHub projekt demo, który opisuje problem: https://github.com/avokin/PostViewer

Odpowiedz

6

Nie sądzę rozmiar zawartość jest co jesteś po. Myślę, że chcesz dostosować ilość rzeczywistego ekranu zużywanego przez widok kolekcji, prawda? Będzie to wymagało regulacji ramy. Rozmiar zawartości obejmuje obszar poza ekranem (przewijanie), jak również widok na ekranie.

nie wiem wszystkiego, co będzie przeszkadzało tylko zmiana rozmiaru ramki w locie:

collectionView.frame = CGRectMake (x,y,w,h); 
[collectionView reloadData]; 

Jeśli mam zrozumienia zostanie poprawnie.

+1

Mam kod jak to: 'cell.tagsCollection.frame = CGRectMake (frame.origin.x, frame.origin.y, size.width, size.height);'. Ale przed przewinięciem collectionView.frame wysokość i szerokość to 0, a iOS ignoruje moje zmiany tych atrybutów. – AVokin

+0

Jak utworzyć warpę wysokości komórki? –

0

czynności, aby zmienić ramkę UICollectionView:

  1. ustawić "translatesAutoresizingMaskIntoConstraints" własność na TAK dla SuperView przez collectioview (jeśli używasz autoLayout)

  2. następnie zaktualizować rama collectioview jako:

    collectionView.frame = CGRectMake (x,y,w,h); 
    [collectionView reloadData]; 
    
Powiązane problemy