31

Momentan habe ich eine Sammlungsansicht, die den größten Teil meines Bildschirms bei 3,5 Zoll Bildschirmgröße einnimmt. Die Sammlungsansicht ist 51 Pixel von oben und 20 Pixel vom unteren Bildschirmrand. Ich verwende die Zellen mit UIPageControl, um ein ausgelagertes Layout mit einer Zelle pro Seite zu erstellen. Beim Umschalten auf die 4-Zoll-Größe kann ich mithilfe von Constraints erreichen, dass die Sammlungsansicht in den neuen Raum expandiert (die 51 Pixel von oben und 20 von unten), aber die Zellengröße bleibt gleich, so dass jetzt ein Bündel vorhanden ist von leerem Raum am oberen und unteren Rand der Zelle. Ich habe versucht, Einschränkungen zu verwenden, aber es scheint, dass Sie sie nicht für Zellen festlegen können. Wie erweitere ich die Zellengröße, um den leeren Platz auf dem iPhone 5 zu füllen?UICollection View Anpassen der Zellengröße für die Bildschirmgröße

Der Code Sammlung Ansicht ist nur

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView 
       cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath]; 
return cell; 

} 

Das Layout Setup um das Layout erhalten arbeiten zunächst in IB ist, ich will, bevor ich mehr

iPhone 5 view. I want to fill the empty space

iPhone 4 view

+1

können Sie plz Code setzen Snippet, das Sie verwendet haben? – Swapnil

+1

@iSwap es ist nicht viel Ich habe gerade eine grundlegende Sammlung Ansicht, mit dem Layout-Setup in Interface Builder. Die Sammlung Ansicht funktioniert gut, ich muss nur herausfinden, wie man die Zelle den leeren Raum auf dem iPhone nehmen 5 – benjih555

Antwort

71

Sie fügen kann entweder die UICollectionViewFlowLayout Methode Eigenschaft verwenden, um diefestzulegenGröße, oder verwenden Sie die delegate Methode, collectionView:layout:sizeForItemAtIndexPath:, wenn Sie die Größen der UICollectionViewCells dynamisch festlegen müssen.

+2

@Drelmar Was sind die Vor- und Nachteile der beiden Methoden, die Sie angegeben? – Sanne

+7

@Sanne, itemSize legt die Standardgröße für die Zellen fest und ist in Ordnung, wenn alle Zellen die gleiche Größe haben sollen. Verwenden Sie die Delegate-Methode, wenn Sie für bestimmte Indexpfade unterschiedliche Größen zurückgeben müssen. – rdelmar

7
CollectionView layout Delegate that will help you to resize your Cell as you need. 
- (CGSize)collectionView:(UICollectionView *)collectionView 
          layout:(UICollectionViewLayout*)collectionViewLayout 
      sizeForItemAtIndexPath:(NSIndexPath *)indexPath; 
+2

wäre nicht schlecht zu sagen, was der Deal mit Ihrem Code ist! –

+6

Das Poster fragte: * "Wie erweitere ich die Zellgröße, um den leeren Raum zu füllen" *. Er/sie hat * nicht * nach einem Funktionsnamen gefragt. Wenn Sie einen einzeiligen Funktionsnamen bereitstellen möchten, ohne zu erklären, wie Sie ihn verwenden, sollten Sie ihn wahrscheinlich als Kommentar zur ursprünglichen Frage hinzufügen. – jww

+4

Dies ist ein einfacher Delegierter, was sonst noch Erklärung erforderlich? und Frage :: UICollection-Ansicht Anpassen der Zellengröße für die Bildschirmgröße. also denke ich, diese antwort haben genug klarstellung?亚历山大 sagst du mir, wie würde ich es mehr erklären? –

Verwandte Themen