2017-05-25 178 views
0

感謝您的幫助。CollectionView ItemHeight比Collectionview高度大

enter image description here

enter image description here

如圖在上述中,的CollectionView ItemSize.height比CollectionView.height大。 我剛纔設置的itemSize在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)") 
    } 
} 

打印表明CollectionViewSize等於ItemSize,但實際,itemSize總是比CollectioinViewSize大。

+0

我嘗試使用固定的值,如:!VAR itemHeight = view.frame.height - titleTopView.frame.maxY - tabBarController .tabBar.frame.height,也不會更改。但是我不知道爲什麼collectionView.frame.height不能使用。 – Eggplant

回答

0

使用此方法:

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