SwiftでString型の変数を使ったUIImageの変更ができません。
使用したい画像の名前は"face_1.png"と"skin_1.png"で、
String型の変数"Qstring"は"appDelegate.viewNumber"の数値により"face"から"skin"に変更します。
しかし、現状のコードだと画像が適用されません。
試しに変数を使わず
swift
1btnImage = UIImage(named: "face_1.png")!; 2btnImage = UIImage(named: "skin_1.png")!;
のように直接名前を書いてみたのですが、こちらだと画像が表示されます。
UIImageの画像名に変数を使う場合はどのようにして書けば良いのでしょうか?
コードはこちらになります。
宣言部
swift
1 var Qstring:NSString! 2
DidLoad
swift
1let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 2 3if(appDelegate.viewNumber == 1){ 4 Qstring = "face" 5}else{ 6 Qstring = "skin" 7} 8 9btn = UIButton() 10btn.frame = CGRect(x: 200,y: 130,width: 57,height: 57) 11btnImage = UIImage(named: "\(Qstring)_1.png")!; 12btn.setBackgroundImage(q2_2btnImage, for: UIControlState()); 13btn.tag = 2 14btn.addTarget(self, action: #selector(ViewController.selectbtn(_:)), for: .touchUpInside) 15self.view.addSubview(btn) 16
btn(ボタンを押して画像を切り替える処理)
swift
1let tag = sender.tag 2 3if(tag == 1){ 4 q2_1btnImage = UIImage(named: "\(Qstring)_1.png"); 5 q2_1btn.setBackgroundImage(q2_1btnImage, for: UIControlState()); 6}else{ 7 q2_1btnImage = UIImage(named: "\(Qstring)_1.png"); 8 q2_1btn.setBackgroundImage(q2_1btnImage, for: UIControlState()); 9}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。