2017-05-25 1 views
0

Merci pour votre aide.CollectionView ItemHeight est plus grand que Collectionview Hauteur

enter image description here

enter image description here

Comme le montre ce qui précède, CollectionView ItemSize.height est grand que CollectionView.height. Je viens de mettre la ItemSize en viewDidLayoutSubviews()

override func viewDidLayoutSubviews() { 
    resizeCollectionView(size: collectionView.frame.size) 
} 

private func resizeCollectionView(size: CGSize){ 
    print("collectionViewSize:\(size)") 
    print("viewSize:\(view.frame.size)") 
    if let layout = collectionView?.collectionViewLayout as? UICollectionViewFlowLayout { 
     layout.minimumLineSpacing = 0 
     layout.minimumInteritemSpacing = 0 
     layout.itemSize = CGSize(width: size.width, height: collectionView.frame.size.height) 
     layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0) 
     collectionView?.layoutIfNeeded() 
     print("itemSize:\(layout.itemSize)") 
    } 
} 

Le spectacle d'impression CollectionViewSize est égale ItemSize, mais le réel, ItemSize toujours grand que CollectioinViewSize.

+0

J'essaie d'utiliser une valeur fixe comme: var = ItemHeight view.frame.height - titleTopView.frame.maxY - tabBarController .tabBar.frame.height, il ne sera pas changement. Mais je ne sais pas pourquoi collectionView.frame.height ne peut pas utiliser. – Eggplant

Répondre

0

Utilisez cette méthode:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: yourWidth, height: yourCollectionView.bounds.height) 
}