So legen Sie die Position von Zellen in UICollectionView fest

8

Ich habe einen UIViewController, der eine UICollectionView enthält. Aber die UICollectionView füllt nicht alle UIViewController.

Ich finde, dass es Raum gibt, dessen Höhe der Höhe der Navigationsleiste zwischen der Zelle und der oberen Kante der UICollectionView entspricht. Ich weiß nicht, wie ich die Zellenposition auf (0,0) in der UICollectionView setzen kann. (So ​​ist der Raum im roten Rechteck)

Ich fand diesen Link Wie geht es mir? Setzen Sie die Position eines UICollectionViewCell? Und ich Unterklasse UICollectionViewFlowLayout (das Folgende sind mein Code)

MZMCollectionViewFlowLayout.h

%Vor%

MZMCollectionViewFlowLayout.m

%Vor%

und benutze es so:

%Vor%

Aber es funktioniert nicht. Das Protokoll NSLog (@ "MZMCollectionViewFlowLayout layoutAttributesForItemAtIndexPath"); wird nicht angezeigt. Und der Rohling ist immer noch da.

Danke für jede Hilfe!

    
Preston Cheung 07.11.2013, 10:19
quelle

2 Antworten

1

Beantworte mich selbst.

Ich habe jede UICollectionViewLayoutAttribute-Information in layoutAttributesForElementsInRect gedruckt: und festgestellt, dass ich die frame.orgin.y

ändern muss

folgt mein Code:

%Vor%

dann funktioniert es gut.

    
Preston Cheung 08.11.2013, 04:06
quelle
16

Zu Ihrer Information, dies wird hier richtig beantwortet: UICollectionView fügt den oberen Rand hinzu

Das Problem besteht darin, dass der Ansichts-Controller die Bildlaufeinfügungen automatisch anpasst. Dies kann entweder im Code oder IB ausgeschaltet werden. Im Code einfach gesetzt:

%Vor%     
JCP 07.05.2014 08:47
quelle