質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2796閲覧

Swift 4のUITableViewでStyleをGroupedにした際に、2個目以降のセクションが表示できない

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/03/05 11:23

編集2018/03/05 11:26

###前提
Xcode 9.2
Swift 4.0.3

###概要
StoryboardでTable ViewとTable View Cellを配置

・Table ViewのCustom Classに「SampleView」を指定
・Table ViewのStyleに「Grouped」を指定
・Table View CellのIdentifierに「Hogehoge」を指定

以下のコードを書いたところ、1個目のセクションしか表示できませんでした。

lang

1// フレームワークの読み込み 2import UIKit 3 4class SampleView: UITableViewController { 5 6 // データ 7 let sectionItems: NSArray = ["セクション1", "セクション2"] 8 let cellLabels1: NSArray = ["セル1", "セル2", "セル3", "セル4"] 9 let cellLabels2: NSArray = ["セル5"] 10 11 // セクションの数 12 func numberOfSectionsInTableView(_ tableView: UITableView) -> Int { 13 return sectionItems.count 14 } 15 16 // セクションの名前 17 override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 18 return sectionItems[section] as? String 19 } 20 21 // セクション内の行数 22 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 23 24 switch section { 25 case 0: 26 return cellLabels1.count 27 case 1: 28 return cellLabels2.count 29 default: 30 return 0 31 } 32 33 } 34 35 // セルのラベルを出力 36 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 37 38 let cell = tableView.dequeueReusableCell(withIdentifier: "Hogehoge", for: indexPath) 39 40 switch indexPath.section { 41 case 0: 42 cell.textLabel?.text = cellLabels1[indexPath.row] as? String 43 case 1: 44 cell.textLabel?.text = cellLabels2[indexPath.row] as? String 45 default: 46 break 47 } 48 49 return cell 50 51 } 52 53}

画像でまとめるとこんな感じ。

イメージ説明

何か、根本的なことを理解できていないかもしれません、、、
ご教授よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

セクションの数を返す関数が古い形式のためだと思います。

Swift

1func numberOfSections(in tableView: UITableView) -> Int { 2 return sectionItems.count 3}

が正解かと

投稿2018/03/05 14:29

toki_td

総合スコア2850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/05 23:34

ご回答ありがとうございます! ご指摘の通りでした、開発しているバージョンに沿った関数を学んでいきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問