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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

解決済

2回答

1651閲覧

基本的なtableviewの使い方

SKMT

総合スコア57

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2017/11/28 18:26

編集2017/11/29 07:02

###前提・実現したいこと
https://i-app-tec.com/ios/tableview.html
を実行したい

###発生している問題・エラーメッセージ
コンパイルはできるが何も表示されない

エラーメッセージ 右側に色々表示されていて左には何も表示されません

###該当のソースコード

import UIKit class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var table: UITableView! let imgArray: NSArray = ["img0","img1","img2","img3","img4","img5","img6","img7"] let label2Array: NSArray = ["2013/8/23/16:04","2013/8/23/16:15", "2013/8/23/16:47","2013/8/23/17:10", "2013/8/23/1715:","2013/8/23/17:21", "2013/8/23/17:33","2013/8/23/17:41"] override func viewDidLoad() { super.viewDidLoad() } func tableView(_ table: UITableView, numberOfRowsInSection section: Int) -> Int { return imgArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) ->UITableViewCell { let cell = table.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) let img = UIImage(named: imgArray[indexPath.row] as! String) let imageView = cell.viewWithTag(1) as! UIImageView imageView.image = img let label1 = cell.viewWithTag(2) as! UILabel label1.text = "No." + String(indexPath.row + 1) let label2 = cell.viewWithTag(3) as! UILabel label2.text = String(describing: label2Array[indexPath.row]) return cell } func tableView(_ table: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 120.0 } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }

###試したこと
コードの紐付けを忘れていたので紐付けしたのですが、それでもうまくいきませんでした
イメージ説明

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

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

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

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

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

fuzzball

2017/11/29 00:22

コードは ``` で囲って下さい。
SKMT

2017/11/29 06:40

すいません、修正しました
guest

回答2

0

let imgArray: NSArray = ["img0","img1","img2","img3","img4","img5","img6","img7"]

この画像はどうなっていますか
どこに保存して、名前はjpgとかpngの拡張子でそれ自体を表示できますか?

let cell = table.dequeueReusableCell(withIdentifier: "tableCell",

このtableCellはCellのidentifierに設定してありますか?

let label1 = cell.viewWithTag(2) as! UILabel

let label2 = cell.viewWithTag(3) as! UILabel

このTagの2、3はちゃんと設定しありますか?
Linesと間違えやすいので

右側に色々表示されていて左には何も表示されません

色々とはなんでしょうね
具体的にわかれば何か解決の糸口になるかもしれません

ちなみに、このコードを画像2つでやってみましたが問題なくできました
設定を確認してください

投稿2017/11/29 04:02

aja

総合スコア3733

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

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

SKMT

2017/11/29 06:46

ajaさんいつもありがとうございます。 画像は名前はimg0,img1〜ではなく別の名前です。後1つ.jpgのなかに.JPGが混じってます。保存はpictureフォルダの中のものをassetsにDDしました。タグはちゃんと設定してセル以外は0になってます。デバッグエリア?の中の右側にエラーメッセージでもなさそうな記号混じりの文が表示されていました、、
aja

2017/11/29 11:30

dataSourceとdelegateがviewに繋がってしまっている View Controllerですね、参考したサイトの画像もそうなっています >デバッグエリア?の中の右側にエラーメッセージでもなさそうな記号混じりの文が表示されていました 少しづつ理解できるようにしましょう
SKMT

2017/11/30 03:17

直したら表示されました。ありがとうございました。メッセージの方もなるべく努力してみます、、 後表示はされたのですが画像の大きさの関係で全部が表示されませんでした。このプロトタイプセルというものがいまいち使いづらいし理解しづらいです。よければ教えてください、、、
aja

2017/11/30 03:38

よかったですね プロトタイプセルはstoryboardで調整できます。大きくしたりちいさくしたり。画像がついて来ない場合は、UIImageViewのViewに「Scale To Fill」とか「Aspect Fit」というのがありますから試してみるといいでしょう。こういうのが嫌いだったらコードで全部書くしかありません TableViewはまだなんとかなっても、CollectionViewになるとちょっとレイアウトが大変ですね、そんなときはUICollectionViewDelegateFlowLayoutなどを使った方がいいこともあります。 とまあ、コメントで言えることには限界があるので、ネットで調べてみましょう。 実際にやってうまくいかない場合は、ここで具体的な質問をすればいいのでは
SKMT

2017/11/30 04:59

なるほど分かりました。そうですね。また何か具体的に何かあったら質問します。いつもご丁寧にありがとうございます
guest

0

ベストアンサー

Storyboard上でdataSourceとdelegateの設定が出来ていないのでは。
TableViewからViewControllerへ両方のOutletを繋いで下さい。

分からなかったら、とりあえずコードで設定してみて下さい。

swift

1override func viewDidLoad() { 2 super.viewDidLoad() 3 table.delegate = self 4 table.dataSource = self 5}

投稿2017/11/29 00:27

fuzzball

総合スコア16731

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

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

SKMT

2017/11/29 07:01

御指南ありがとうございます。storyboard上で右クリックして繋ぐやつはやってますけど他にも何かありますか?
fuzzball

2017/11/29 07:09 編集

ViewじゃなくてViewControllerに繋いで下さい。 コードでは試してみたのでしょうか?
SKMT

2017/11/30 03:14

繋ぎました!表示されました!ありがとうございます!!コードの方もやってみたのですがviewと繋いだままだったせいかコンパイルが通りませんでしたが、storyboardの方を消したらコードでもできました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問