2017-04-18 61 views
1

我很新,迅速和不能找出如何以編程方式更改UIImageView中的圖片。我已經嘗試過目前爲止:發現零,而在UIImage解包可選

if let image = UIImage(named: "mouse.jpg") { 
    imageView.image = image 
    print("image set") 
} 

但它導致發現零,同時解包可選的致命異常。

mouse.jpg與swift文件位於同一個文件夾中,可以在Xcode的檢查器中設置爲圖像視圖圖像。

包裹在其他的代碼,如果是這樣的:

if let iv = imageView{ 
    if let image = UIImage(named: "mouse.jpg"){ 
     iv.image = image 
    } 
} 

修復了零誤差,但不會從什麼是在故事板設置在所有更改圖片。

如果裏面if代碼執行它看起來可能反而與您參考的ImageView而不是圖像本身的問題,因爲這裏的條件要求UIImage正確初始化任何意見將是有益

+6

如果'imageView'爲'nil',這段代碼只會崩潰。檢查IB中的連接。 – vadian

+0

由於您已將問題更新爲完全不同的內容,因此我重新開放。你是否驗證了'iv.image = image'這一行被調用?它仍然聽起來像你的插座沒有連接。 – rmaddy

+0

是啊對不起,我一開始並沒有很好地問這個問題。我在這行下面有一個打印文件,當這個代碼被調用時打印,所以是的,我很確定它被稱爲 – Blake

回答

4

。我想你正在使用隱式解包可選如var imageView: UIImageView!存儲對imageView的引用。

如果您正在使用@IBOutlet是否檢查過它是否正確連接?在設置image屬性之前,您確定實際上有UIImageView嗎?

+0

這個。爲了清晰起見,點擊xcode右上方的「two circle」(顯示幫助編輯器),並打開故事板和關聯的視圖控制器。按住Ctrl +拖動故事板中的imageView到視圖控制器,併爲您的imageView創建適當的出口。現在,當你在代碼中引用它時,它甚至不應該是零。 – Meshach

相關問題