This is a sample of UICollectionView.
This is a reference to the
This site is easy to look at and I highly recommend it to anyone who does SWIFT.
The makeColor()
function fills a cell with randomly generated colors.
Each time you scroll, the color changes.
Reference: UICollectionViewを使う
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { | |
var myCollectionView : UICollectionView! | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
let viewWidth = self.view.frame.width | |
let viewHeight = self.view.frame.height | |
let collectionFrame = CGRect(x: 0, y: 0, width: viewWidth, height: viewHeight) | |
// CollectionViewのレイアウトを生成. | |
let layout = UICollectionViewFlowLayout() | |
// Cell一つ一つの大きさ. | |
layout.itemSize = CGSize(width:viewWidth/4, height:viewWidth/4) | |
// セルのマージン. | |
layout.sectionInset = UIEdgeInsets.zero | |
//layout.sectionInset = UIEdgeInsetsMake(16, 16, 16, 16) | |
//セルの横方向のマージン | |
layout.minimumInteritemSpacing = 0.0 | |
//セルの縦方向のマージン | |
layout.minimumLineSpacing = 0.0 | |
// セクション毎のヘッダーサイズ. | |
layout.headerReferenceSize = CGSize(width:0,height:0) | |
// CollectionViewを生成. | |
myCollectionView = UICollectionView(frame: collectionFrame, collectionViewLayout: layout) | |
// Cellに使われるクラスを登録. | |
myCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "MyCell") | |
myCollectionView.delegate = self | |
myCollectionView.dataSource = self | |
self.view.addSubview(myCollectionView) | |
} | |
//Cellが選択された際に呼び出される | |
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | |
print("Num: \(indexPath.row)") | |
} | |
//Cellの総数を返す | |
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | |
return 100 | |
} | |
//Cellに値を設定する | |
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | |
let cell : UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath as IndexPath) | |
cell.backgroundColor = makeColor() | |
return cell | |
} | |
//ランダムに色を生成する | |
func makeColor() -> UIColor { | |
let r: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0 | |
let g: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0 | |
let b: CGFloat = CGFloat(arc4random_uniform(255)+1) / 255.0 | |
let color: UIColor = UIColor(red: r, green: g, blue: b, alpha: 1.0) | |
return color | |
} | |
} |