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

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

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

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

Swift

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

Q&A

解決済

1回答

2040閲覧

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

Tomzy

総合スコア104

Xcode

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

Swift

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

0グッド

1クリップ

投稿2016/05/22 06:29

###前提・実現したいこと

作りたいアプリ:年配者に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/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答1

0

ベストアンサー

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

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

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

投稿2016/05/22 12:07

saitomarch

総合スコア70

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

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

Tomzy

2016/05/22 14:45

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

2016/05/23 06:26

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問