this post私は自分の答えを見つけたという面白い問題がありました。私の
minimumInteritemSpacingForSectionAtIndex
insetForSectionAtIndex
sizeForItemAtIndexPath
例
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionView, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsetsMake(0, 0, 0, 0)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let screenRect: CGRect = collectionView.bounds
let screenWidth: CGFloat = screenRect.size.width
let cellWidth: CGFloat = screenWidth/24
//Replace the divisor with the column count requirement. Make sure to have it in float.
let size: CGSize = CGSize(width: cellWidth, height: cellWidth)
return size
}
最大の秘密はにあなたの意見を取り付けるには注意がすることですスウィフトでそれらを使用して2つの重要な機能がありますサイジングの目的のために適切に使用されますトレーリングエッジとボトムレイアウト。先頭と上にのみアタッチする場合は、フレームまたは制約を使用してプログラムで幅と高さを設定できます。私は個人的なプロジェクトでは、私の意見では機能がややクリーナーになっているので、私はそれを他の方法でやったことがありますが、制約を実行することはもう少し簡単です。
できるだけ多くのセルレイアウトをcellForItemAtの内部で実行してください。