テーブルビューの行を上下2段のラベルにする方法
解決済
回答 1
投稿
- 評価
- クリップ 1
- VIEW 1,256
前提・実現したいこと
作りたいアプリ:年配者にiPhoneの操作方法を動画、画像、テキストで教えるアプリ
作りたい画面:
第1画面 TableView01
第2画面 TableView02
第3画面 WebView
発生している問題・エラーメッセージ
**テーブルビューの行を上下2段のラベルにできない。
**
ラベルが1個の方式のテーブルビューTableView02はできて、TableView01よりTableView02へ遷移して表示できたが、TableView02を2段にするべく、TableView02Cellファイルを追加し、
cell.label01.text = "1ぎょうめ"
cell.label02.text = "2ぎょうめ"
というコードを追加したところ、添付スクリーンショットのごとく、もとのラベルと追加ラベルの3つが表示されてしまいます。
TableView01の項目より遷移するTableView02の項目なので、1個のラベルでも100個に近い数になります。
texts01からtexts08の定数を上段のラベル(cell.label01.text)に挿入し、subtexts00からsubtexts08の定数を下段のラベル(cell.label02.text)に挿入し、最初からあったもとのラベルは消す方法を教えてください。
なお、上段のラベルの書式はもとのラベルと同様とし、下段ラベルはより小文字で複数行表示にしたい。(ソースコードに記入してあるテキストは仮のもので、もっと長くなります)
該当のソースコード
TableView01のコード
ViewController.swift
// Lesson03m
//
// Created by Tomiji Suzuki on 2016/03/23.
// Copyright © 2016年 Tomiji Suzuki. All rights reserved.
//
import UIKit
import iAd
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBOutlet var tableView01: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Prepare interstitial Ad
UIViewController.prepareInterstitialAds()
// Show iAd
self.canDisplayBannerAds = true
//????? 下記のコードを入れるとタブのトミ爺頁がエラーになる。 ?????
//tableView01.delegate = self
//tableView01.dataSource = self
}
// セルに表示するテキスト
let texts = ["動画:動画の見方", "動画:電話", "動画:カレンダー", "動画:カメラ・ビデオ", "動画:テキストの見方", "テキスト:テキスト見方", "テキスト:初心者の頁", "テキスト:用語の説明", "テキスト:応援者の頁"]
//テーブルビューのタイトルを表示
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let label = UILabel(frame: CGRect(x:0, y:0, width: tableView.bounds.width, height: 50))
// 文字位置
label.textAlignment = NSTextAlignment.Center
// 文字サイズ
label.font = UIFont.italicSystemFontOfSize(17)
// 背景色
label.backgroundColor = UIColor.redColor()
// 文字色
label.textColor = UIColor.whiteColor()
// 表示される文字
label.text = "ご希望の項目を触ってください"
return label
}
// セルの行数
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return texts.count
}
// セルの内容を変更
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell01")
cell.textLabel?.text = texts[indexPath.row]
// 文字色変更
cell.textLabel?.textColor = UIColor.blackColor()
// 文字サイズ変更
//cell.textLabel?.font = UIFont.systemFontOfSize(30)
// 文字を太字に変更
cell.textLabel?.font = UIFont.boldSystemFontOfSize(25)
// cellの背景を透過
cell.backgroundColor = UIColor.whiteColor()
// cell内のcontentViewの背景を透過
//cell.contentView.backgroundColor = UIColor.whiteColor()
// チェックマークをつける
//cell.accessoryType = UITableViewCellAccessoryType.Checkmark
return cell
}
//テーブルビューのセルがタップされた処理
var selectedIndexPath: NSIndexPath!
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//セルのインデックスパス番号を出力
print("タップされたセルのインデックスパス:\(indexPath.row)")
selectedIndexPath = indexPath
//cellが選択された場合
//TableView02へ遷移するためにsegueを呼び出す
performSegueWithIdentifier("toTableView02", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "toTableView02") {
let subVC = (segue.destinationViewController as? TableView02)!
subVC.selectedIndexPathInViewController = selectedIndexPath
// SubViewController のselectedImgに選択された画像を設定する
//subVC.selectedImg = selectedImage
}
}
}
試したこと
課題に対してアプローチしたことを記載してください
補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
問題のスクリーンショットが確認できないため回答が難しいですが、TableView02の部分のcellのtextLabel.textプロパティーに何らかの文字列をセットしていませんでしょうか?
もしセットされていた場合はその部分を除去、それでもダメなら空白の文字列をセットすれば2つの表示になるかと考えられます。
後はcell.label01.textにtexts01〜texts08、cell.label02.textにsubtexts00〜subtexts08をセットすれば大丈夫かと考えられます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/05/22 23:45
2016/05/23 15:26