前提・実現したいこと
現在PickerViewで表示された言葉をもとに、画像・文字を表示しようとしています。
文字の方の読み込みは配列を用いて読み込むことができました。
しかし画像を配列に直接組み込むことができなかったので、
関数を用いて表現することにしました。
発生している問題・エラーメッセージ
関数を用いて表現するときに、どのように扱えば良いかわからず
ひとまず、場合ごとに読み込む画像を変えるコードを作りました。
しかし、起動はうまくいくものの、画像が読み込まれません。
(文字の方はPickerViewで選択肢を変えるごとに変更されます。)
次のようにコードを記述したところ、
Swift
1 // UIPickerViewのRowが選択された時の挙動 2 func pickerView(_ pickerView: UIPickerView, 3 didSelectRow row: Int, 4 inComponent component: Int) { 5 introduce.text = message[row] 6 readimg(rimg:Int) 7 8 }
エラーが次のように出ました。
Cannot convert value of type 'Int.Type' to expected argument type 'Int'
どのように記述すれば良いのでしょうか?
全体のソースコード
Swift
1// 2// ViewController.swift 3 4import UIKit 5 6class ViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate { 7 @IBOutlet weak var introduce: UITextView! 8 @IBOutlet weak var imageV: UIImageView! 9 @IBOutlet weak var pickerview: UIPickerView! 10 let names = ["A","B","C","D","E"] 11 let message = [ 12 "A", 13 "B", 14 "C", 15 "D", 16 "E"] 17 18 19 //let picture = ["A.png","B.png","C.png","D.png","E.png"] 20 21 22 23 override func viewDidLoad() { 24 super.viewDidLoad() 25 // Do any additional setup after loading the view, typically from a nib. 26 // Delegate設定 27 pickerview.delegate = self 28 pickerview.dataSource = self 29 30 } 31 32 func numberOfComponents(in pickerView: UIPickerView) -> Int { 33 return 1 34 } 35 36 var rownumber = 0 37 38 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 39 return names.count 40 } 41 42 func pickerView1(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 43 -> Int { 44 rownumber = row 45 return rownumber 46 47 } 48 49 50 // UIPickerViewの最初の表示 51 func pickerView(_ pickerView: UIPickerView, 52 titleForRow row: Int, 53 forComponent component: Int) -> String? { 54 55 return names[row] 56 } 57 58 59 func readimg(rimg:Int) -> UIImageView { 60 if rownumber == 0 { 61 62 let imageV1 = UIImage(named:"A.png") 63 imageV.image = imageV1 64 65 } 66 if rownumber == 1 { 67 68 let imageV1 = UIImage(named:"B.png") 69 imageV.image = imageV1 70 71 } 72 if rownumber == 2 { 73 74 let imageV1 = UIImage(named:"C.png") 75 imageV.image = imageV1 76 77 } 78 if rownumber == 3 { 79 80 let imageV1 = UIImage(named:"D.png") 81 imageV.image = imageV1 82 83 } 84 if rownumber == 4 { 85 86 let imageV1 = UIImage(named:"E.png") 87 imageV.image = imageV1 88 89 } 90 91 return imageV 92 93 } 94 95 // UIPickerViewのRowが選択された時の挙動 96 func pickerView(_ pickerView: UIPickerView, 97 didSelectRow row: Int, 98 inComponent component: Int) { 99 introduce.text = message[row] 100 101 //ここにどのように関数を指定すれば良いのか? 102 } 103 104 105 106} 107 108
補足情報(FW/ツールのバージョンなど)
シミュレータを用いています。
画像は追加済み
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/18 00:41
2018/12/18 01:27
2018/12/18 01:49
2018/12/18 01:51
2018/12/18 02:13
2018/12/18 02:38
2018/12/18 02:42
2018/12/18 02:48 編集
2018/12/18 02:48
2018/12/18 02:50