2017-05-06 96 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)