2016-11-23 4 views
-1

Ich versuche, einfache pädagogische App über Filme zu erstellen, und ich muss Filmrahmen horizontalen Scroller erstellen.Autoresize UICollectionViewCell Größe in UITableView

Ich schaffe für die Sammlung Ansicht: enter image description here

Aber wenn ich es für ein anderes Ziel (iPhone 6s plus zum Beispiel) zu bauen, ich habe dies: enter image description here

Wie dieses Problem zu lösen?

Meine Szene Controller-Code (Swift 3):

public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return 4 
} 

public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) 
    cell.backgroundColor = UIColor.black 

    // Configure the cell 
    return cell 
} 

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 

    return UITableViewAutomaticDimension 
} 
+2

Was ist das Problem? :) –

+0

Ich möchte eine Zelle nahm den gesamten Raum von collectionView, von einer Seite des Bildschirms auf eine andere. – IlyaGutnikov

Antwort

1

ich denke, dass Sie die Methode der UICollectionView Delegaten implementieren können versuchen:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSizeMake(yourHeight, self.view.frame.size.width) 
} 

auf diese Weise wird Ihre collectionView-Zelle innerhalb von tableView so groß wie der Bildschirm angezeigt.

+0

Ich füge diesen Code: 'public func Collection (_ Collection: UICollectionView, Layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize.init (Breite: 600, Höhe: 500) }' und es funktioniert nicht. – IlyaGutnikov

+0

initialisieren Sie den Delegaten Ihrer UICollectionView? Entschuldigung für die dumme Frage aber etwas passieren :) –

+0

nein, nur dataSource. Jetzt versuche ich es zu implementieren – IlyaGutnikov

0

Zuerst möchte ich etwas sagen über UITableViewAutomaticDimension Sie verwenden, Sie nicht genau für den Fall verstehen, wie es funktioniert.

Ihre Erwartungen sind wahrscheinlich, dass UITableViewAutomaticDimension tableView ableitet, um eine Zelle mit der Größe der gesamten TableView zu erstellen, aber es funktioniert nicht auf diese Weise.

UITableViewAutomaticDimension ist nur infers tableView, die innere Größe Ihrer Zelle wird hier als Rückgabewert verwendet; Wenn Sie also einige Einschränkungen, Ansichten mit Einschränkungen oder was auch immer in Ihrem tV hinzufügen, wird seine Größe verwendet.

und zweite - Ihr Kommentar macht keinen Sinn überhaupt für mich machen, weil Ihr Code geschrieben nicht zu Zelle von Collection verwendet ist und ich kann nichts an Größe ihrer Zellen im Zusammenhang Kommentar

Editiert:

alle Zellen mit einer Breite des Bildschirms zu machen, korrekte Größe von Delegatmethode von collectionViewFlowLayout zurückkehren - sizeForItem

Verwandte Themen