swift3 Xcode8.2.1でswitch文で画像を表示を入れ替えるシステムを作っています。
画像を入れ替える機能を実装中に以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
Constant 'testImage' used before being initalized ```s ###該当のソースコード ```swift3 import Foundation import UIKit class ViewController: UIViewController{ func initImageView(fig: String) -> UIImageView{ // UIImage インスタンスの生成 let image1:UIImage = UIImage(named:fig)! // UIImageView 初期化 let imageView = UIImageView(image:image1) // 画面の横幅を取得 let screenWidth:CGFloat = view.frame.size.width let screenHeight:CGFloat = view.frame.size.height // 画像の中心を画面の中心に設定 imageView.center = CGPoint(x:screenWidth/2, y:(screenHeight - screenHeight/4)) // UIImageViewのインスタンスをビューに追加 self.view.addSubview(imageView) return (imageView) } func deleteImageView(hoge: UIImageView){ // UIImageViewのインスタンスをビューから削除 hoge.removeFromSuperview() } // 画面表示するタイミングでリロードが入る override func viewWillAppear(_ animated: Bool) { let testImage: UIImageView switch point { case 10: print(point) testImage = initImageView(fig: "test1.png") break case 20: // エラー出る所 deleteImageView(hoge: testImage) testImage = initImageView(fig: "test2.png") default: print("その他") } } }
変数を用意してあげれば, 画像の入れ替えがうまくいくと思ったのですが画像は2枚表示され削除されませんでした.
そのため, 画像のUIImageViewのインスタンスを削除しようとしたのですが, エラーが起きてしまいどうすることもできなくなってしまいました.
エラーをみると, UIImageVIewのインスタンスの初期化がされていないということなのかと思ったですが, ここで初期化してしまうと前の画像が削除できない気がしました. このエラーを解決する方法か, 違う実装方法しかないのかが知りたいです.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/18 12:06