配列の要素をラベルに表示させたいのですが、配列の各行の要素数が同じ数ではないので、要素数に応じた表示にしたいのですが、やり方が分からず、とりあえずviewDidLoad内にラベルを全て(一番多い数)表示させています。そうすると、少ない要素数の配列の行を呼んだ場合、テキスト表示のないラベルも表示されるので、これを何とかしたいのですが・・・。
ラベルの生成はStoryboardで、ラベルの色付けもしてあります。
テーブルビューのセルからindex番号を渡して、csvファイルから読み込んだテキストを表示させています。
この場合は、ラベルの生成はコード入力した方がよろしいのでしょうか?
コード入力でラベルを生成した場合のやり方も知りたいです。
汚いコードですが、どうぞよろしくお願い致します。
xcode8 swift3 で作成しています。
import UIKit class ViewController: UIViewController { @IBOutlet weak var dayLabel: UILabel! @IBOutlet weak var categoryLabel: UILabel! @IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var questionLabel: UILabel! @IBOutlet weak var q1Label: UILabel! @IBOutlet weak var q2Label: UILabel! @IBOutlet weak var q3Label: UILabel! @IBOutlet weak var q4Label: UILabel! @IBOutlet weak var q5Label: UILabel! @IBOutlet weak var q6Label: UILabel! @IBOutlet weak var q7Label: UILabel! @IBOutlet weak var q8Label: UILabel! @IBOutlet weak var q9Label: UILabel! @IBOutlet weak var q10Label: UILabel! //シーン移動の際に設定されるデータ var received:Int? //csvArrayから取り出した問題を格納する配列dayArray var dayArray:[String] = [] override func viewDidLoad() { super.viewDidLoad() //CSVファイル名を引数にしてloadCSVメソッドを使用し、CSVファイルを読み込む let csvArray = loadCSV("time") //csvArrayの行をタップされた番号で取得 dayArray = csvArray[received!].components(separatedBy: ";") //ラベルにテキストを設定 dayLabel.text = dayArray[0] categoryLabel.text = dayArray[1] titleLabel.text = dayArray[2] questionLabel.text = dayArray[3] q1Label.text = dayArray[5] q2Label.text = dayArray[7] q3Label.text = dayArray[9] q4Label.text = dayArray[11] q5Label.text = dayArray[13] q6Label.text = dayArray[15] q7Label.text = dayArray[17] q8Label.text = dayArray[19] q9Label.text = dayArray[21] q10Label.text = dayArray[23] } (略) コード
回答2件
あなたの回答
tips
プレビュー