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

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

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

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

Swift

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

Q&A

解決済

1回答

1180閲覧

テーブルビューのカスタムセル使用

minoossp

総合スコア42

Xcode

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

Swift

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

0グッド

0クリップ

投稿2016/11/19 07:11

編集2016/11/19 16:21
mySwitch.addTarget(self, action: #selector(TopTableViewController.onClickMySwicth(sender:)), for: UIControlEvents.valueChanged) } internal func onClickMySwicth(sender: UISwitch){ /et cellPoint1 = table.convert(sender.center, from: sender.superview) let indexPath1 = table.indexPathForRow(at: cellPoint1) let cell = table.cellForRow(at: indexPath1!) as! TableViewCell if sender.isOn { suittiarrye.remove(at: (indexPath1?.row)!) suittiarrye.insert(true, at: (indexPath1?.row)!) }else { suittiarrye.remove(at: (indexPath1?.row)!) suittiarrye.insert(false, at: (indexPath1?.row)!) cell.svview.backgroundColor = UIColor.lightGray } ////////ここでセルの更新などが必要でしょうか?? } }

変更しました。

イメージ説明

swift3.0 xcode8.3

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

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

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

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

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

fuzzball

2016/11/19 12:38 編集

(deleted)
guest

回答1

0

ベストアンサー

swift

1let cellPoint1 = .table.convert(sender.center, from: sender.superview) 2let indexPath1 = table.indexPathForRow(at: cellPoint1) as! TopTableViewController 3let cell = table.cellForRow(at: indexPath1) as! CustomCell

これで取得できないでしょうか?

投稿2016/11/19 12:40

fuzzball

総合スコア16731

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

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

minoossp

2016/11/19 14:37

返事遅れて申し訳ありません‥ありがとうございます。エラーは出ないのですが セルに置いたViewが色が変わらないのはコードがおかしいからでしょうか? cell.svview.backgroundColor = UIColor.lightGray
fuzzball

2016/11/19 14:40

このコード自体は問題が無いように見えますが。
minoossp

2016/11/19 14:47

若干‥xcode側で修正されたのでコード書きます let cellPoint1 = table.convert(sender.center, from: sender.superview) let indexPath1 = table.indexPathForRow(at: cellPoint1) let cell = table.cellForRow(at: indexPath1!) as! TableViewCell if sender.isOn { suittiarrye.remove(at: (indexPath1?.row)!) suittiarrye.insert(true, at: (indexPath1?.row)!) }else { suittiarrye.remove(at: (indexPath1?.row)!) suittiarrye.insert(false, at: (indexPath1?.row)!) cell.svview.backgroundColor = UIColor.lightGray } UserDefaults.standard.set(suittiarrye, forKey: "suittiarrye") print("スイッチsuittiarrye2 \(suittiarrye)") ////////ここでセルの更新などが必要でしょうか?? }
fuzzball

2016/11/19 14:48

長いコードは質問欄に書いて下さい。
fuzzball

2016/11/19 14:53

「必要でしょうか?」と質問する前に、自分で試してみてはどうでしょうか?
minoossp

2016/11/19 14:58

申し訳ありません、ご指摘の通りです。 確認したのですがダメでした。
fuzzball

2016/11/19 15:07

・セルは正しく取得できているのか? print(cell) を追加。 ・cell.svview.backgroundColor = UIColor.lightGrayを通っているのか? elseの中に適当なprintを追加。 ・svviewは何なのか? Viewと書いていますが、UIViewでしょうか? ・「確認したのですがダメでした」 どうやって確認したのか書いて下さい。
minoossp

2016/11/19 15:19

print(cell)打った部分のログがこれですどこを見ていいのかわからないので全て書きます。 <newmemo1.TableViewCell: 0x7fec730f8e00; baseClass = UITableViewCell; frame = (0 0; 375 70); clipsToBounds = YES; autoresize = W; layer = <CALayer: 0x600000032d80>> ・cell.svview.backgroundColor = UIColor.lightGrayを通っているのか? 通っていました。 ・「確認したのですがダメでした」 どうやって確認したのか書いて下さい。 自分が思ったのはセルの更新をすればいいのかと思い table.reloadData() を入れて見ました。結果変化なしでした。
minoossp

2016/11/19 15:21

・svviewは何なのか? Viewと書いていますが、UIViewでしょうか? はいUIViewです セル側に宣言してあるのでcell.svview.backgroundColorこのように書きました。
fuzzball

2016/11/19 15:37

全て問題なさそうですね‥。あとはStoryboardの問題でしょうか。 カスタムセルの画像を載せられますか?
minoossp

2016/11/19 15:41

print(cell)の使い方知らないので、自分なりにViewの認識がされているのか調べたのですがセルの認識がされていないようなのです。 確認した事‥ セルに貼り付けたUIViewのバックグランドをストリートボード上で変更したのですが アプリ立ち上げ時に色が変わっていなかったのですが今の原因と関係ありあますか? UIViewの確認 紐つけはしっかりされている ストリートボード上では色が変わっているのですがアプリ立ち上げ時には変わっていない状態 でした。
fuzzball

2016/11/19 15:47

「アプリ立ち上げ時に色が変わっていなかった」はおかしいです。 そもそもUIViewが表示されていない、もしくは、何かの裏に隠れている可能性があります。
minoossp

2016/11/19 15:55

階層は大丈夫だと思うのですが‥ 一応画像載せましたので、申し訳ないのですが確認お願いします。
fuzzball

2016/11/19 15:58

Cellの中にあるTableViewは何でしょうか?削除して下さい。
minoossp

2016/11/19 16:04

消しました。 現状は先ほどと同じ状態です。 色々試してる時にコピペしてたみたいです。申し訳ありません
minoossp

2016/11/19 16:13

fuzzballさん‥大変申し訳ありません。原因がわかりました。 fuzzballさんから、cell.の使い方を聞く前に色々していた時に書いていたコードをコメントアウトしていたはずだったのですが、先ほどおかしいと言われもう一度セルの構成部分を見直したところ コメントアウトが取れて非表示になっていました。 本当に申し訳ありませんでした。 無事に変更できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問