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

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

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

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

Swift

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

解決済

UITableViewでセルの中身の数に合わせて行数を指定したい

gusiken0604
gusiken0604

総合スコア10

Xcode

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

Swift

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

1回答

0リアクション

0クリップ

172閲覧

投稿2022/09/19 09:22

前提

クイズアプリを作成しています。
お気に入りに指定した問題を取得後、行数の指定ができません

実現したいこと

  • お気に入りの問題数に合わせてセルの行数を指定する

発生している問題・エラーメッセージ

お気に入り問題の配列を作成した後、行数メソッドのカウントに反映できません

該当のソースコード

swift

import UIKit class BookmarkViewController: UIViewController,UITableViewDelegate,UITableViewDataSource{ var csvArray: [String] = []//CSVを入れる箱 var quizArray: [String] = [] var quizCount = 0 var mondaiID = "0" var touroku = "0" var tablegyosu = 0 var cellArray:[String] = [] override func viewDidLoad() { super.viewDidLoad() //print("お気に入りフラグ1\(touroku)") //csv読み込むブロック csvArray = loadCSV(fileName: "quiz0")//quiz0.csv固定 quizArray = csvArray[quizCount].components(separatedBy: ",") //print("クイズカウント\(quizCount)") mondaiID = quizArray[10] let touroku = UserDefaults.standard.string(forKey: mondaiID) // print("お気に入りフラグ2\(touroku!)") // print(quizArray[10]) if touroku == "1" { cellArray += [quizArray[0]] //print("お気に入りフラグifff\(touroku!)") } else { nextQuiz() } }// viewDidLoad終わり //次の問題を表示させるブロック func nextQuiz(){ //tablegyosu += 1 //print("行数\(tablegyosu)") quizCount += 1 print("クイズカウント\(quizCount)")//1 if quizCount < csvArray.count { quizArray = csvArray[quizCount].components(separatedBy:",") mondaiID = quizArray[10] print(mondaiID) let touroku = UserDefaults.standard.string(forKey: mondaiID) //print(cellArray) if touroku == "1" { cellArray += [quizArray[0]] print(cellArray) //tablegyosu += 1 //print("行数\(tablegyosu)") } else { //owari = 1 nextQuiz() } } } //CSV読み込むブロック func loadCSV(fileName: String) -> [String] { let csvBundle = Bundle.main.path(forResource: fileName, ofType:"csv")! do { let csvData = try String(contentsOfFile: csvBundle,encoding: String.Encoding.utf8) let lineCange = csvData.replacingOccurrences(of: "\r",with:"\n") csvArray = lineCange.components(separatedBy:"\n") csvArray.removeLast() } catch { print("エラー") } return csvArray } //テーブルの行数を指定するメソッド(必須) func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int { //return tablegyosu return cellArray.count } //セルの中身を設定するメソッド(必須) func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell0", for: indexPath) cell.textLabel!.text = quizArray[0]//[indexPath.row] nextQuiz() return cell } }

試したこと

問題数をカウントした変数を指定しても1行しか実装できなかった
問題だけの配列を新たに作成して、カウントしても1行しか実装できなかった

補足情報(FW/ツールのバージョンなど)

storyboardで作成
Xcode13.4.1
問題はcsvから取得

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

xg63ex2b

2022/09/19 13:11

ごめんなさい、コードからアプリの仕様を理解しようとしたのですが、難しいです・・ 一度不要な変数を削除して、該当のソースコードを修正していただくことは可能でしょうか? それからできればnextQuizの再起呼び出しは普通にforを使うことでも実現できそうに思いますので、forを使った形に修正していただくことは可能でしょうか? そのようなシンプルな形に修正する過程で、ご自身で問題を解決できてしまうこともありますので、面倒かもしれませんが、よろしくお願いします。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Xcode

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

Swift

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