2017-05-06 95 views
0

我是新來的swift,我搜索了不同的地方,找不到有用的東西。如何設置按鈕上的圖像

我在這種情況下,我在按鈕按下時選擇一個圖片從UIImagePickerController

@IBAction func chooseImage(_ sender: Any){} 

其工作,我可以訪問該照片庫,並選擇一個圖像,但.. 的事情是,我想將它設置爲按鈕圖像。 我保存的圖像:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
{ 
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage 

    // this works with an UIimageView.image but I can't get it to work with the button 

    ???.image = image 

我相信這樣做是說的方式; button.ImageView.image = image,這隻能通過創建一個名爲UIButton的變量來完成! 然後我可以設置

button.ImageView.image = image 

否則我無法進入方法ImageView.image

但問題是,chooseImage是一樣的按鈕,我使用的用於接收圖像的動作......所以我都做了一個@IBOutlet weak var button:UIButton!和@IBAction在同一個按鈕? 嗯,我試圖創造既

@IBOutlet weak var button: UIButton! 

@IBAction func chooseImage(_ sender: Any) { 

button.imageView.image = image 
} 

,但什麼也沒發生這聽起來令人困惑,但有兩個問題。這樣做有可能嗎?如果是,爲什麼沒有做

button.imageView.image = image? 

時顯示的圖片,如果不是請告訴我做什麼我錯了:-)

謝謝!

回答

1
someButton.setImage(imagenew, for: .normal) 

沒有爲UIButton的一個setimage方法。您也可以將圖像設置爲背景圖像。有一種叫做setbackgroundImage的方法。

+0

是的,但我如何訪問setImage?我可以同時創建一個 @IBOutlet weak var button: 和 IBAction func chooseImage(_ sender:Any){ 在同一個按鈕上? – StrawHat

+0

@StrawHat是的,你可以創建一個插座和動作 – Scriptable

+0

謝謝!我嘗試了一下,現在我選擇了一個圖像。它顯示全部藍色...(按鈕圖像)??它沒有設置正確的圖像 – StrawHat

0

試試這個

button.setImage(image, for: .normal) // Swift 3 
+0

上課,但我怎麼存取權限setImage ??我可以創建一個@IBOutlet弱變量按鈕:UIButton!和IBAction func chooseImage(_ sender:Any){在同一個按鈕上? – StrawHat

+0

謝謝!我嘗試了一下,現在我選擇了一個圖像。它顯示全部藍色...(按鈕圖像)??它沒有設置正確的圖像 – StrawHat

+0

檢查此解決方案,這將有所幫助。 http://stackoverflow.com/questions/18133465/setting-uibutton-image-results-in-blue-button-in-ios-7 –

0

使用setImage()方法來設置前景圖像的一個按鈕。然而,如果你的按鈕都是藍色的,這是因爲有一個名爲「渲染模式」爲圖像的功能,你應該知道的,請參閱Template Images瞭解更多信息:

button.setImage(image.withRenderingMode(.alwaysOriginal), for: .normal)