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

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

ただいまの
回答率

90.48%

  • Swift

    7469questions

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

  • Xcode

    4210questions

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

テーブルビューの行を上下2段のラベルにする方法

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 582

Tomzy

score 91

前提・実現したいこと

作りたいアプリ:年配者に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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

問題のスクリーンショットが確認できないため回答が難しいですが、TableView02の部分のcellのtextLabel.textプロパティーに何らかの文字列をセットしていませんでしょうか?

もしセットされていた場合はその部分を除去、それでもダメなら空白の文字列をセットすれば2つの表示になるかと考えられます。

後はcell.label01.textにtexts01〜texts08、cell.label02.textにsubtexts00〜subtexts08をセットすれば大丈夫かと考えられます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/22 23:45

    ご指摘ありがとうございました。記載したコードの大半が掲載されていないこと、添付スクリーンショットや、その他詳しい補足説明が、すべて抜けていることがわかりました。スペースに対して、私が記載した内容が多すぎたのでしょうか。改めてこのシステムについて、勉強した上で質問をしなおします。

    キャンセル

  • 2016/05/23 15:26

    もう一度見直しましたら、お陰様で2段のラベルを表示することができました。ありがとうございました。更に発展させるべく、(修正して再質問)の形で質問をしました。よろしくお願いします。

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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

  • Swift

    7469questions

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

  • Xcode

    4210questions

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