Как изменить размер UICollectionView 2x2 и уместить его на весь экран: Swift 3 Xcode 8
Привет, я создаю приложение, которое требует сетку изображений. В качестве примера я использую сетку изображений 2x2 в ячейках UICollectionView. Я хотел бы знать, как я мог бы уменьшить раздражающее пространство в середине, а также сделать так, чтобы они имели одинаковую ширину и высоту, чтобы соответствовать всему экрану. Я знаю, что я могу сделать это с помощью Interface Builder. Тем не менее, я хочу сделать это программно, потому что по мере развития приложения будут появляться разные уровни и разное количество квадратов - возможно, также 10х10. Я новичок в UICollectionViews. Я ссылался на многие другие вопросы, однако большинство из них в Задаче C, и немногие из них в Swift, похоже, не работают со Swift 3.
Вот мой полный код:
import UIKit
class GameViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout{
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
collectionView.delegate = self
collectionView.dataSource = self
let collectionViewLayout = self.collectionView.collectionViewLayout as! UICollectionViewFlowLayout
collectionViewLayout.minimumLineSpacing = 0
collectionViewLayout.minimumInteritemSpacing = 0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 2;
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 2
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
let image = cell.viewWithTag(1) as! UIImageView
image.image = #imageLiteral(resourceName: "coffee")
return cell;
}
func collectionView(_collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: self.collectionView.frame.size.width/2, height: self.collectionView.frame.size.height/2)
//this method is not getting called
}
}
Я также загружаю изображение того, как оно в настоящее время и как я хочу, чтобы
Я надеюсь, что вы, ребята, поможете мне - это будет очень полезно ... Спасибо!
Я соответствовал UICollectionViewDelegateFlowLayout и вызвал sizeforitematindexpath, но он не работал. Добавив точку останова, я понял, что метод не вызывается. Так что я не так делаю? Также Xcode дает мне это предупреждение -