// install pod :: AlignedCollectionViewFlowLayout // also assign class AlignedCollectionViewFlowLayout in storyboard func setLayout() { let alignedFlowLayout = AlignedCollectionViewFlowLayout(horizontalAlignment: .justified, verticalAlignment: .center) statsCollectionView.collectionViewLayout = alignedFlowLayout statsCollectionView.delegate = self statsCollectionView.dataSource = self } } // MARK: - Collection View extension GameStatsViewController : UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { print("sec :", section) return UIEdgeInsets(top: 0.0, left: 0, bottom: 0.0, right: 0)//here your custom value for spacing } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { var widthPerItem : CGFloat = 0 var heightPerItem : CGFloat = 0 widthPerItem = collectionView.frame.width / 3 - 7 heightPerItem = widthPerItem + 5 return CGSize(width:widthPerItem, height: heightPerItem) } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return namesArray.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = statsCollectionView.dequeueReusableCell(withReuseIdentifier: "GameStatsCollectionViewCell", for: indexPath) as! GameStatsCollectionViewCell cell.name.text = namesArray[indexPath.row] cell.points.text = numbers[indexPath.row] return cell } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter