に従わない:私はUICollectionViewは、だから私は、次のコードを持ってCollectionViewを持っUICollectionViewDelegateFlowLayoutとインセット
class MyViewController: UIViewController {
...
@IBOutlet weak var imageCollectionView: UICollectionView!
fileprivate let sectionInsets = UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)
fileprivate let itemsPerRow: CGFloat = 3
...
override func viewDidLoad() {
super.viewDidLoad()
imageCollectionView.delegate = self
imageCollectionView.dataSource = self
}
}
...
extension MyViewController : UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
let paddingSpace = sectionInsets.left * (itemsPerRow + 1)
let availableWidth = collectionView.bounds.width - paddingSpace
let widthPerItem = availableWidth/itemsPerRow
return CGSize(width: widthPerItem, height: widthPerItem)
}
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
insetForSectionAt section: Int) -> UIEdgeInsets {
return sectionInsets
}
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return sectionInsets.left
}
}
私は何のために行くよする間に非常に小さなスペースで行当たり3個の細胞であるが、私はアプリを実行するたびに
ここで、各黒いブロックはセルです。
私が見つけた同様の質問の答えは、通常、私がやったUICollectionViewDelegateFlowLayout関数を実装することです。関数は呼び出されていますが、期待どおりに機能していません!私が手動でwidthPerItem
の値をわずかに小さく変更しても、それはまだ動作しません!
ここに明白な何かが欠けていると誰にでも見えますか? ありがとうございました!
あなたの最初の提案はそれをしました!ありがとう、トン! – user3029918