[swift] CollectionViewの実装
サンプルコード
class collectionViewController: UIViewController,UICollectionViewDataSource, UICollectionViewDelegate , UICollectionViewDelegateFlowLayout{
let array = ["1","2","3","4"]
override func viewDidLoad() {
super.viewDidLoad()
collectionView.delegate = self
collectionView.dataSource = self
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
//Cellというidentiferに予めStoryBoardで設定しておく
let cell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
let row = indexPath.row
//タグ1のアイテムを取得
let contentView = cell.contentView.viewWithTag(1) as! UIImageView
contentView.image = UIImage(named:"image.png")
//タグ2のアイテムを取得
let label = cell.contentView.viewWithTag(2) as! UILabel
label.text = String(array[row])
return cell
}
//セルのサイズ コードでは高さ75、横幅は画面半分の-12で調整している
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let cellHeight:CGFloat = 75.00
let cellWidth:CGFloat = self.view.frame.size.width/2-12
return CGSizeMake(cellWidth, cellHeight)
}
//セルの間隔指定
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsetsMake(5, 7, 5, 7)
}
//セクション数
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
// 要素数を入れる、要素以上の数字を入れると表示でエラーとなる
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return array.count;
}
//タップされた時の挙動
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let row = indexPath.row
//その他メソッド
}
}