iOS

[Swift3] SwitchとEnumを使ってSectionやCellを指定する

投稿日:2017年10月18日 更新日:

はじめに

どうも、はじめです。

今回はSectionやCellの指定にSwitchとEnumを使ってみようと思います。
SwitchとEnumを使用するメリットとしてはEnumのすべてのCaseを網羅していないとエラーになってしまうため
漏れが無くなるところにあります。
複数人で開発をしている時などにとても便利ですね。

今回は例としてCellのTitleをEnumのCase毎に変更してみようと思います。

実行結果は以下のようになります。

 

 

では早速。

 

環境

・Xcode 8.3.3
・Swift 3

 

Enumの用意

まずは使用するEnumを用意します。

上記のままだとCell数を返す時のcountが返せません。
調べてみてもあまり気持ちい書き方が見当たらずもやもやするところもありますが、
以下を追記することでcountを返すことができます。

 

Tableの用意

通常通りTableの用意をしておきます。

1. StoryBoard上でTableViewを追加し、delegateとdatasourceを設定
2. ViewControllerにUITableViewDelegateとUITableViewDataSourceを継承させる
3. UITableViewDataSourceの実装必須メソッドを追記

 

Cellの返却にEnumを使用する

さて、ようやく本題に来ました。
まずはCell数を返します。
Enumの用意の際にEnumのCaseの数を取得できるようにしていたので
以下を記述するだけでCaseの数を取得することができます。

 

次にEnumのCase毎にCellのTitleを変更させます。

ここで使用するCaseにEnumのすべてのCaseが使用されていなければエラーとなります。
また、SwitchにEnumを使用することでDefaultを記述する必要がなくなります。
こうすることによって網羅していなければいけない箇所でも漏れがなくなります。

 

以上で完成です。
完成後のソース全量を表示しておきます。

 

さいごに

SwitchとEnumの組み合わせは他にもいろいろな場所で利用できると思います。
今回はCellに使用しましたが、TableやCollectionだけでもSectionに使用したり
HeightやLayoutの変更に使用したりとかなり便利だと思います。

最後まで見ていただきありがとうございました。

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

swift

【Swift】Full Keyboard Accessが有効な際にボタンの動作が行われない。

1 はじめに2 フルキーボードアクセス3 今回の問題4 対応方法5 再現アプリ5.1 ViewController5.2 ChildView6 動かしてみた7 さいごに8 おすすめ書籍 はじめに こん ...

【Swift】XCUITestでScrollViewのテストをしてみる

1 はじめに2 XCUITestとは3 導入方法3.1 オブジェクトの配置3.2 UISCrollView3.3 ラベルとボタン4 テストのための設定4.1 ラベル5 テストコード5.1 SetUp5 ...

[Swift]AlamofireでファイルのUploadをしてみる

1 はじめに2 CarthageでAlamofireを導入する2.1 CartFileの作成とライブラリのダウンロード2.2 Xcodeの設定3 Alamofireとは3.1 AlamofireのHT ...

swift

[Swift]タブの切り替え時にアニメーションが簡単に実装できる「TransitionableTab」

1 はじめに2 準備3 実装4 さいごに はじめに こんにちは、nukkyです。 今回は、UITabBarControllerの切り替え時にアニメーションを実装できるライブラリ「Transitiona ...

swift

端末のモデル名やサイズを簡単に取得できるライブラリ「Device」

1 はじめに2 準備3 試してみる3.1 端末モデル名3.2 画面サイズ3.3 端末の種類4 さいごに はじめに こんにちは、nukkyです。 今回は端末のサイズやモデル名などを 簡単に取得できるライ ...

フォロー

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。