我正在尝试为iOS编写drumpad应用程序。在与Interface Builder进行了几次战斗之后,我决定将4x4网格的“pad”放置在Collection View中。
我使用约束将CollectionView保持在屏幕顶部,并将KeepAspectRatio设置为true,这样它就会成为每个屏幕上的正方形。
我还创建了一个带有UIButton的Cell,并为它提供了一个可用于每个Pad的reusableIdentifier ..
现在的想法是使用FlowLayout并使用16个单元格填充View,并在单元格宽度上进行一些数学运算,以便在CollectionView上均匀分布它们。
这是我第一次使用XCode和Swift ..所以我不禁谷歌的东西,观看Youtube视频等等。
按照指南,到目前为止,我的代码看起来像这样
extension DrumGridViewController : UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of items
return 16
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "TriggerPad", for: indexPath) as UICollectionViewCell
// Configure the cell
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let screenWidth = self.view.frame.width/4-5
return CGSize(width: screenWidth, height: screenWidth);
}
}
接下来我将创建一个Datasource,等等...... 事情是..我的DataSource是“静态的”,如果你将..它将永远是带UIButtons的细胞.. numberOfItemsInSection也将始终是16 ..所以我想知道这个方法是否有点为我的东西我我想做。
所以我的问题是不能做到这一点吗?到目前为止,我试图摆弄,但没有取得多大成功。
非常感谢