###前提・実現したいこと
swift3でボタンを押した時にボタンの画像をランダムに変更したいのですが、画像が切り替わりません。
どなたか解決方法を教えてください。
number1btnを押すごとに、btnsampleの画像を切り替えたいです。
###該当のソースコード
swift
1import Foundation 2import UIKit 3 4class SecondViewController: UIViewController { 5 var array:[UIImage]=[] 6 var array2:[Int]=[] 7 8 9 let BTN_1=0 10 let BTN_2=1 11 12 13 var gazonum=0 14 15 16 var number1btn=UIButton() 17 var btnsample=UIButton() 18 19 20 override func viewDidLoad() { 21 super.viewDidLoad() 22 23 24 for var z in 0..<52{ 25 array2.append(z+1) 26 } 27 28 29 for var u in 0..<array2.count{ 30 var a=Int(arc4random_uniform(UInt32(array2.count))) 31 print(a) 32 a=array2.remove(at: a) 33 array.append(UIImage(named: "\(a).png")!) 34 35 36 } 37 38 39 40 41// ボタン1 42 let number1btn=makeButton(frame: CGRect(x:200,y:400,width:53.3,height:80), image: UIImage(named: "number1.png")!,tag: BTN_1) 43 44 self.view.addSubview(number1btn) 45 46//ボタンサンプル 47 let btnsample=makeButton2(frame: CGRect(x:100,y:400,width:53.3,height:80), tag: BTN_2) 48 btnsample.setImage(UIImage(named: "z01.png")!, for: .normal) 49 50 51 self.view.addSubview(btnsample) 52 53} 54 55func makeButton(frame:CGRect,image:UIImage,tag:Int)->UIButton{ 56 let button=UIButton(type: UIButtonType.custom) 57 button.frame=frame 58 button.setImage(image, for: .normal) 59 button.tag=tag 60 button.addTarget(self, action: #selector(onClick(sender:)), for: .touchUpInside) 61 return button 62 63} 64 65 func makeButton2(frame:CGRect,tag:Int)->UIButton{ 66 let button=UIButton(type: UIButtonType.custom) 67 button.frame=frame 68 button.tag=tag 69 button.addTarget(self, action: #selector(onClick(sender:)), for: .touchUpInside) 70 return button 71 72 } 73 74 75func onClick(sender:UIButton){ 76 btnsample.setImage(nil, for: .normal) 77 78 if sender.tag == BTN_1 { 79 80 81 gazonum+=1 82 83 btnsample.setImage(array[gazonum], for: .normal) 84 85 self.view.addSubview(btnsample) 86 87 } 88 if sender.tag == BTN_2 { 89 } 90 91} 92 93
###試したこと
btnsample.setImage(nil, for: .normal)を追加してみたのですがそれも成功しませんでした。
ボタンの生成をonClick内で行うと画像は切り替わったのですが、onClickを行わないとボタンが生成されません。
初めからボタンを生成し表示し、押せる状態からボタンの画像を切り替えたいです。
わかりにくくてすいません。
###補足情報(言語/FW/ツール等のバージョンなど)
swift3を使っています。
あなたの回答
tips
プレビュー