[英]UIImageView with IBOutlet in Swift to see it in the Interface Builder
當我像這樣將圖像插入到視圖中時,它將起作用:
func loadSomeImage() {
var imageView = UIImageView(frame: CGRectMake(100, 150, 150, 150))
var image = UIImage(named: "myImage.jpg")
imageView.image = image
self.view.addSubview(imageView)
}
我的這段代碼的問題是,界面生成器中未顯示ImageView。
但是,當我編寫此代碼時,出現錯誤:
@IBOutlet weak var imageView: UIImageView
func loadSomeImage() {
self.imageView = UIImageView(frame: CGRectMake(100, 150, 150, 150))
var image = UIImage(named: "myImage.jpg")
imageView.image = image
self.view.addSubview(imageView)
}
致命錯誤:解開Optional值時意外發現nil
這是為什么? 我可以插入一個在Interface Builder中顯示但具有我自己的代碼實現的圖像來更改Attribute Inspector不能更改的某些功能嗎?
謝謝你的幫助!
您的代碼的問題在於,有兩個不同的UIImageView實例。 一個是通過界面生成器創建的,另一個是通過代碼創建的。
self.imageView = UIImageView(frame: CGRectMake(100, 150, 150, 150))
這將創建另一個UIImageView實例,因此它與您在界面生成器上放置的imageView不同。 只需刪除這一行代碼即可。 另外,如果您使用的是XIB,則無需再次添加addSubview。
將代碼優化為:
@IBOutlet weak var imageView: UIImageView
func loadSomeImage() {
var image = UIImage(named: "myImage.jpg")
self.imageView.image = image
}
這應該足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.