2014-09-02 5 views
0

Dois-je définir cell.bound/cell.frame dans la méthode de source de données UITableView?Dois-je définir cell.bound/cell.frame dans cellForItemAtIndexPath?

override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("", forIndexPath: indexPath) as CompoundStatementCollectionViewCell 

    cell.bounds = .. 

ou la mise en œuvre sizeForItemAtIndexPath indique la taille des cellules nécessaires?

Répondre

2

Vous ne devez pas définir des limites/cadre dans cellForItemAtIndexPath: le bon endroit pour mettre en place la taille de la cellule est sizeForItemAtIndexPath, vous pouvez également l'utiliser avec insetForSectionAtIndex si vous souhaitez mettre en place un espacement entre les cellules, en-tête et pied de page.

+0

my 'UICollectionViewCell'" se déplace "lors de la rotation, ne devrais-je pas définir la coordonnée' frame.origin.x' dans 'layoutSubviews'? –

+1

@ János, Non, vous ne devriez pas toucher le cadre de la cellule directement. Si la vue de collection doit avoir un aspect différent en orientation portrait et paysage, vous pouvez définir différentes tailles/encarts en fonction de l'orientation, quelque chose comme ça (si orientation == portrait {..} else {...} dans insetForSectionAtIndex/sizeForItemAtIndexPath. – Greg

Questions connexes