2017-05-03 1 views
0

Ich habe eine CollectionView und ich setze die Größe für seine Zellen dynamisch. Hier ist das Problem: Wenn ich den Home-Button drücke und das Spiel erneut betrete, knackt CollectionView. Die ganze Zelle sieht schrecklich aus, sie haben eine falsche Größe und erscheinen an falscher Stelle. Und es passiert nur auf iPads und funktioniert perfekt auf iPhones. Hier ist mein Code in der Tabelle für die Erstellung von:CollectionView stürzt ab, nachdem die HOME-Taste auf iPads gedrückt wurde

if collectionView == tableCollectionView{ 

     let cell:TableViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "letter_cell", for: indexPath) as! TableViewCell 

     let size = Int(collectionView.frame.size.width)/(lettersCountInRow + 1); 
     let j = indexPath.row 
     let i = indexPath.section 

     let letter = guessLogic!.letters[i * lettersCountInRow + j] 
     let imageName = String(describing: letter) 

     let vertical_shift = (Int(collectionView.frame.size.height) - size * 2)/2 
     let pad = Double(size) * 0.1; 
     let start_x = Int(collectionView.frame.size.width) - size*7 - Int(pad) * lettersCountInRow; 


     cell.letterImage.image = UIImage(named: imageName) 
     cell.frame = CGRect(x:start_x + j * Int(pad) + j * size, y: i * size + vertical_shift + Int(pad), width: size, height: size) 

     return cell 

    } 

Getestet auf iPad Air-2

Dies ist, wie der Tisch immer sollte wie folgt aussieht: Normal look

Und wie sieht es aus wie nach Ich drücke HOME und gehe zurück zum Spiel: Wrong bullsh*t look

+0

Können Sie Code angeben, wie Sie die Größe für die Zellen festlegen? – Sergey

+0

Fügen Sie bitte einige Screenshots hinzu. – Shmidt

+0

Bitte überprüfen Sie neue Informationen in der Frage – Alexander

Antwort

0

hast du die Größe der Zellen in viewdidload() eingestellt? In diesem Fall versuchen Sie es in viewdidappear() zu tun und zu sehen.

+1

Nein, ich verändere die Zelle in dieser Methode ** func collectionView (_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell ** – Alexander

0

Nun, ich habe die Lösung gefunden. Es war wegen der Orientierung. Ich habe die Landschaftsorientierung deaktiviert und alles hat perfekt funktioniert.

Verwandte Themen