[iPhone] UICollectionView で Grid 表示(Objective-C)

UICollectionView を使うと格子状、Gridの表示ができます。使い方は UITableView に似ています。Cell内の要素をTagで識別する方法で作ってみます。
 

Objective-C
Xcode 9.4

 

UICollectionView

 
UICollectionView の設定は UITableView と似ているので、これを理解できればUITableViewも作りやすくなります。
また、セルのためのクラスを作成する方法もありますが、ここではTagを使った簡単な方法を採用しました。
 

 

storyboard に Collection View を設定

 
Collection View の配置
storyboard のView Controller上に Collection View を配置します。
 

 
特別なレイアウトを想定していないのであれば、Collection View はSafe Area (iPhone Xという変なものが出たので) に入れておいた方が分かりやすいです。

 

 
Collection View Cell 確認
基本的にはCollection View Cell が既にできています。「Collection View Cell」を選択してサイズをmanualで変更することもできます。
 

 
Cell の ID設定
 
Collection Reusable Viewの Identifier を、例えば「Cell」と設定します。
 
スクリーンショット 2014-02-23 20.00.11
 
UIImageViewとUILabelの配置
この Cell の中に、UIImageView と Label を置きます。
 

 
Tagの設定
UIImageView の View にある Tag を「1」
 

 
Label の Tag を「2」とセットします。
 

 

画像の設定

 
サムネイル画像を集めて、名前に@2xを追加したファイルにして、Assets.xcassets に配置します。@3xファイルも作成したいところですが、サムネイルなので大丈夫でしょう。
 
スクリーンショット 2016-04-08 14.14.53
 
ちなみに、ここで使ったファイルは全て正方形ですが、エンコード(jpg,png…)も画面サイズも異なるものです。

 

ViewController にコードを記述

 
以下コードを記述していきます。
UICollectionViewDataSource, UICollectionViewDelegate を設定
 
ViewController.h


 

ViewController.m

 

ViewController と CollectionView の紐付け

 
storyboard に戻ってCollection View を選択
dataSource -> View Controller
delegate -> View Controller
New Referencing Outlet -> collectionView
とそれぞれ紐付けします。
 

 
ビルドして実行するとCollectionViewが表示されました。
 

 
とりあえず表示はされていますが、イマイチな感じですね、セルのサイズがスクリーンと合っていません

 

Cellの調整

 
画面サイズに合ったセルサイズを計算して合わせこみをします。


 
Min Spacing:
またCellの幅が2列可能な大きさなのに1列で表示されているケースなどでは、CollectionView設定にあるFor Cells と For Lines の「Min Spacing」が大きすぎるようであれば調整してください。
 

 
AutoResizing:
古いやり方ですがこういうのもあると言うことです。UIImageViewのAutoResizingの設定を図のようにします。これによりCellが矩形で横いっぱいになったサイズに合わせることができます。またUILabelも同様の設定をしておきます。
意外とこれでいい具合にできるかもしれません
 

 
背景を適当にGrayにしてビルド実行しました。
 
iPhone Xでもsimulatorで実行してみました。(storyboardのCollection Viewの範囲をiPhone Xで確認した方がいいかもしれません)
 

 
Swiftのケースはこちらです。

アルバムのような写真アプリによく使われますが、画像をマス目に配置するには UICollectionView を使います。基本的な設定をテスト...

 
 
Reference:
UICollectionView – UIKit | Apple Developer Documentation


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする