2016-05-23 8 views
0

imageViewからイメージをカラー化したい。その後、私はこのイメージをボタンに設定したいと思っています。イメージをカラー化し、間違ったカラースウィフトを取る

let imageView:UIImageView = UIImageView() 

    if let myImage = UIImage(named: "ic_star") { 
     let tintableImage = myImage.imageWithRenderingMode(.AlwaysTemplate) 
     imageView.image = tintableImage 
    } 

    imageView.tintColor = UIColor.redColor() 

    bestListButton.setImage(imageView.image, forState: .Normal) 

これは機能するはずのスニペットですが、私のボタン画像は常に青で色付けされています。 デバッガは、色が変わらないと言っています。シミュレータはそれを青色に変更します。

画像の背景色とは関係ないようです。 Button in Blue

Button in Yellow

Debugger result: show origin color of button

EDITと(ハック)ソリューション さて、それはかなり奇妙です。青は、私のインターフェースビルダーがtintColor blueだったからです。 私はそれを白に変更しました。今私の星は白です。

しかし、コードを削除すると、画像が黒に戻ります。だから、色の変化はインターフェイスビルダーとコードとの組み合わせでうまくいくように思えます。

EDIT 2 プログラムソリューション: bestListButton.tintColor = UIColor.redColor()

答えて

0

は、あなたのイメージは、PNGファイルですか?

試してみてください。

let imageView:UIImageView = UIImageView() 

if let myImage = UIImage(named: "ic_star") { 
    imageView.image = imageView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) 
} 

imageView.tintColor = UIColor.redColor() 

bestListButton.setImage(imageView.image, forState: .Normal) 
+0

ええそうです。私のイメージはGoogleマテリアルデザインの公式ギリシコンです。 imageViewが空であるか、空ではないが画像がないため、コードでエラーが発生します。 – kuzdu

関連する問題