**第1画面より第2画面に遷移したとき、TableView02の2段目のlabel2の表示ヶ所が1行ずれて最初の行がブランクになる不具合。
**
まだ、不具合が続いているので、再度質問します。よろしくお願いします。
AAA
TableView02のコードを元に戻し
cell.label2.text = subtexts[selectedIndexPathInViewController.row][indexPath.row]
Xcodeクリーン、シミュレーターのリセット、XcodeのDeriveDataのProjectおよびModuleCodeの削除、ゴミ箱を空に、Xcodeの終了、Macの再起動をやって,再度Xcodeをビルドしましたが、状況は変わりません。
BBB
添付画像により状況を説明します。
第1画面は正常です。
第2画面の1:
第1画面の2行目をタップした場合表示されますが、第2画面の1行目の2段目がブランクになっていて2行目にずれて表示されています。
第2画面の2:
第1画面の3行目をタップした場合表示されますが、第2画面の1行目の2段目がブランクになっていて2行目にずれて表示されています。
第2画面の3:
不思議なことに上記2の画面の2行目をタップすると2行目に2段目が消えます。3行目は変わらずです。
CCC
関係fileのコードを記載します。なお、字数制限があるので//中略 を入れます。
// ViewController.swift
import
1 2import iAd 3 4class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{ 5 @IBOutlet var tableView01: UITableView! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 // Prepare interstitial Ad 11 UIViewController.prepareInterstitialAds() 12 13 // Show iAd 14 self.canDisplayBannerAds = true 15 16 tableView01.delegate = self 17 tableView01.dataSource = self 18 19 } 20 21// セルに表示するテキスト 22let texts = ["動画:動画の見方", 23 "動画:電話", 24 "動画:カレンダー", 25 //中略] 26 27 //テーブルビューのタイトルを表示 28 func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 29 let label = UILabel(frame: CGRect(x:0, y:0, width: tableView.bounds.width, height: 50)) 30 31 // 文字位置 32 label.textAlignment = NSTextAlignment.Center 33 34 // 文字サイズ 35 label.font = UIFont.italicSystemFontOfSize(17) 36 37 // 背景色 38 label.backgroundColor = UIColor.redColor() 39 40 // 文字色 41 label.textColor = UIColor.whiteColor() 42 43 // 表示される文字 44 label.text = "ご希望の項目を触ってください" 45 46 return label 47 } 48 49 50// セルの行数 51func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 52 return texts.count 53} 54 55// セルの内容を変更 56func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 57 let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell01") 58 59 cell.textLabel?.text = texts[indexPath.row] 60 61 // 文字色変更 62 cell.textLabel?.textColor = UIColor.blackColor() 63 64 // 文字サイズ変更 65 //cell.textLabel?.font = UIFont.systemFontOfSize(30) 66 // 文字を太字に変更 67 cell.textLabel?.font = UIFont.boldSystemFontOfSize(25) 68 69 // cellの背景を透過 70 cell.backgroundColor = UIColor.whiteColor() 71 // cell内のcontentViewの背景を透過 72 //cell.contentView.backgroundColor = UIColor.whiteColor() 73 74 // チェックマークをつける 75 //cell.accessoryType = UITableViewCellAccessoryType.Checkmark 76 return cell 77 78 } 79 80//テーブルビューのセルがタップされた処理 81 var selectedIndexPath: NSIndexPath! 82 83 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 84 85 //セルのインデックスパス番号を出力 86 87 print("タップされたセルのインデックスパス:\(indexPath.row)") 88 89 selectedIndexPath = indexPath 90 91 //cellが選択された場合 92 //TableView02へ遷移するためにsegueを呼び出す 93 94 //performSegueWithIdentifier("toTableView02", sender: self) 95 self.performSegueWithIdentifier("toTableView02", sender: indexPath) 96 97 } 98 99 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 100 if (segue.identifier == "toTableView02") { 101 102 let subVC = (segue.destinationViewController as? TableView02)! 103 subVC.selectedIndexPathInViewController = selectedIndexPath 104 } 105} 106} 107
// TableView02.swift
import
1 2import iAd 3 4 5 class TableView02: UIViewController, UITableViewDataSource, UITableViewDelegate { 6 @IBOutlet var tableView02: UITableView! 7 8 var selectedIndexPathInViewController: NSIndexPath! 9 10 let texts00 = ["01:自動で始まり終わる", 11 "02:途中で止める方法", 12 //中略] 13 14 let texts01 = ["01:電話番号で発信", 15 "02:「連絡先」の登録", 16 "03:「よく使う項目」", 17 //中略] 18 19 let texts02 = ["01:いろいろな画面", 20 "02:イベントの記入方法", 21 "03:上記全動画の通し映写"] 22 23 //中略 24 let subtexts00 = ["動画の基本的な見方", 25 "", 26 "", 27 "元の画面に戻る方法", 28 //中略] 29 30 let subtexts01 = ["「キーパッド」という数字盤を使う", 31 "住所録を使って発信", 32 "よく使う電話番号の登録", 33 //中略] 34 35 let subtexts02 = ["年画面、月画面、日画面、週画面、イベント(予定)画面", 36 "新規イベント、既存イベントの修正、削除", 37 ""] 38 39 let subtexts03 = //中略 40 41 //teratail助言2追加 42 var texts : [[String]]! 43 var subtexts : [[String]]! 44 45 override func viewDidLoad() { 46 super.viewDidLoad() 47 48 49 // Prepare interstitial Ad 50 UIViewController.prepareInterstitialAds() 51 52 // Show iAd 53 self.canDisplayBannerAds = true 54 55 //self.setupFriends() 56 57 58 texts = [texts00,texts01,texts02,texts03,texts04,texts05,texts06,texts07,texts08] 59 subtexts = [subtexts00,subtexts01,subtexts02,subtexts03,subtexts04,subtexts05,subtexts06,subtexts07,subtexts08] 60 61 tableView02.delegate = self 62 tableView02.dataSource = self 63 64 let nib = UINib(nibName: "CustomCell", bundle: nil) 65 tableView02.registerNib(nib, forCellReuseIdentifier: "Cell") 66 67 } 68 69 70 func tableView(tableView: UITableView, numberOfRowsInSection section:Int) -> Int { 71 return texts[selectedIndexPathInViewController.row].count 72 } 73 74 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 75 76 77 //teratailTake One さんのコメントアドバイスにより修正 78 //var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as? CustomCell 79 80 81 let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomCell 82 cell.label1.text = exts[selectedIndexPathInViewController.row][indexPath.row] 83 84 //一段目のために選ばれた行番号をプリントする 85 print("タップされた 1段用 インデックスパス:\(indexPath.row)") 86 cell.label2.text = subtexts[selectedIndexPathInViewController.row][indexPath.row] 87 88 //二段目のために選ばれた行番号をプリントする 89 print("タップされた 2段用 インデックスパス:\(indexPath.row)") 90 91 return cell 92 } 93 }
CustomCell.swift
import UIKit class CustomCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() // Initialization code } @IBOutlet weak var label1: UILabel! @IBOutlet weak var label2: UILabel! override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } }
// Text.swift
import
1 2class Test : NSObject{ 3 var label1:String 4 var label2:String 5 6 init(label1:String,label2:String){ 7 self.label1 = label1 8 self.label2 = label2 9 10 } 11}
DDD
storyboardの結合を現す
ViewControllerクラスのスクリーンショットと
TableView02クラスのスクリーンショットを添付します。
CustomCellのxibのスクリーンショットも添付します。
EEE
その他ご参考事項を記載します。
第1画面のセルの内容はコードで設定しています。
第2画面のセルの内容はxibで設定しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/13 09:06
2016/06/13 10:02
2016/06/14 04:10