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

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

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

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

Swift

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

Q&A

解決済

1回答

1397閲覧

テーブルビューについて

minoossp

総合スコア42

Xcode

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

Swift

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

0グッド

0クリップ

投稿2016/12/27 05:38

編集2016/12/27 14:56

サンプルでテーブルビューのコードを作って動作確認後
そのサンプルをコピペして別のプロジェクトで表示させようと思ったのですが
エラーも出ていない状態でテーブルビュー自体表示されない(ビューが真っ白)なのですがどこを確認すれば原因がわかるのか教えていただきたいです。

テーブル自体の生成はログで確認できているのですが
表示がうまくいかない状態です。

色々調べたのですが
自分と同じ状態でトラブっている記事が見つからなかったので
よろしくお願いします。

情報不足だと指摘されるかもしれませんが
どこの情報を添付すればいいかもよくわからないので
確認方法を教えていただければ幸いです。

追加情報

import UIKit class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UIToolbarDelegate,UIScrollViewDelegate { @IBOutlet weak var scrollview: UIScrollView! // テーブルページ数 var teburupejicount:Int = 0//テーブルセルの押された値 // テーブルページ表示されているページ var teburupejihyoujicount:Int = 0//表示されているページ var indexcount:Int = 0//インデックスの値 var myTableView: [UITableView] = [] // テーブルデータ var serutaitoru = [[String]]()//セル内のタイトル var seruhituke = [[String]]()//セル内の日付 override func viewDidLoad() { super.viewDidLoad() } /* ScrollViewが移動した際に呼ばれる. */ func scrollViewDidScroll(_ scrollView: UIScrollView) { // スクロール中の処理 print("\(scrollView.contentOffset.x)") print("didScroll") } func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { if fmod(scrollView.contentOffset.x, scrollView.frame.maxX) == 0 { }else if scrollview.contentOffset.x == self.view.frame.width{ }else{ print(teburupejicount) } print("teburupejicount \(teburupejicount)") print("teburupejihyoujicount \(teburupejihyoujicount)") print(teburupejicount) } // セルのスイッチ internal func onClickMySwicth(sender: UISwitch){ } // ステータスバーの幅 var barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height var width:CGFloat = 0 var height:CGFloat = 0 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 60 } // UIScrollView. var scrollView: UIScrollView! // ページ番号. let pageSize = 2 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) serutaitoru = [["ご飯", "味噌汁", "焼き魚"],["天津飯", "チャーハン", "八宝菜", "酢豚", "肉まん"]] seruhituke = [["1980/2/27", "1983/8/25", "2016/10/10"],["2016/6/24", "2014/12/16", "2014/8/16", "2014/11/16", "2018/12/3"]] width = CGFloat(self.view.frame.maxX) height = CGFloat(self.view.frame.maxY) // Status Barの高さを取得. let barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height // スクロールビュー // ScrollViewの設定. scrollView = UIScrollView(frame: CGRect(x: 0, y: barHeight, width: width, height: height - barHeight)) scrollView.showsHorizontalScrollIndicator = false; scrollView.showsVerticalScrollIndicator = false scrollView.isPagingEnabled = true scrollView.delegate = self scrollView.contentSize = CGSize(width:CGFloat(pageSize) * width, height:0) self.view.addSubview(scrollView) for i in 0 ..< pageSize { let tableView: UITableView = UITableView(frame: CGRect(x: CGFloat(i) * width, y: barHeight, width: width, height: height - barHeight)) tableView.estimatedRowHeight = 60 tableView.rowHeight = UITableViewAutomaticDimension tableView.tag = i tableView.dataSource = self tableView.delegate = self tableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "MyCell") myTableView.append(tableView) scrollView.addSubview(myTableView[i]) print("テーブル\(i)") } print("myTableView[]: \(myTableView)") } // セルがタップされた時遷移される func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func numberOfSections(in tableView: UITableView) -> Int { return 1 } // セルの個数を指定するデリゲートメソッド(必須) func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if tableView.tag == 0 { return serutaitoru[0].count }else if tableView.tag == 1 { return serutaitoru[1].count }else{ return 0 } } // セルに値を設定するデータソースメソッド(必須) func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! TableViewCell // 配列の中身をすべて各セルに表示させる cell.Label1.text = serutaitoru[tableView.tag][indexPath.row] cell.Label2.text = seruhituke[tableView.tag][indexPath.row] return cell } }

swift3.0 xcode8.1 beta

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

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

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

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

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

aja

2016/12/27 06:46

どこのサンプルをコピペしたとか、ストーリーボードの設定、サンプルはswift3対応?とか
minoossp

2016/12/27 06:58

追加情報 サンプルは自作でswift3動作確認済み ストーリーボードは初期のままです
aja

2016/12/27 07:35

ストーリーボード無しでコードのみで作成ですか?UITableViewのコードを明示されたほうが回答がつくでしょう
aja

2016/12/27 07:38

Xcode8.3?ですか
minoossp

2016/12/27 07:43

コードのみですswift3.0 xcode8.1 betaでした
aja

2016/12/27 10:46

コードが不完全です、書いてないところは察しろと言われてもそこが問題かもしれません。UITableViewの単体テストをしてみてください
guest

回答1

0

ベストアンサー

以下の以前の質問の続きかと思いますが、そのコードを回答したように修正するとこちらでも動いていました。
後は移植するだけなので今のコードとの違いを見比べてみてください。

それでも動かなければまた全体のコードを載せてください。

swift3 コードで作ったテーブルビューのセルについて

投稿2016/12/27 12:06

編集2016/12/27 12:06
_Kentarou

総合スコア8490

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

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

minoossp

2016/12/27 13:41

回答ありがとうございます。 全て移植したのですが動かないです。 見比べて見ましたが原因がわかりません。 よろしくお願いします。
_Kentarou

2016/12/27 14:06

まず@IBOutletで置いてあるscrollViewを削除してください。 それとScrollView、TableViewのFrameサイズが画面外になっているのでそこを修正してみてください。
minoossp

2016/12/27 15:05

ありがとうございます。 大きさを微調整をした時に誤って別の数値を指定していました。 もう一つお伺いしたいのですが 配列に入れたテーブルビューをreloadData()する場合 var teburupejihyoujicount = (今表示されているテーブルタグ) myTableView[teburupejihyoujicount].reloadData() であっているのでしょうか?
_Kentarou

2016/12/27 15:13

動かしてみたところteburupejihyoujicountの値がスクロールしても毎回 「0」のようですが、ちゃんと取得できれば myTableView[teburupejihyoujicount].reloadData() でいけると思います。
minoossp

2016/12/27 15:32

ありがとうございます。 無事に解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問