UIImage
があります。これはすべて黒の小さなシンボルです。 UIImage
は、私が持っているカスタムUIButton
サブクラスに設定されています。画像にtintColor
を適用することは可能ですか?そのため、黒の画像の代わりに、tintColor
が何であっても色が変わりますか?
私は新しい資産の作成を避けようとしています。
// here I want defaultImageName (that is black) to use the tintColor (that is white)
[self setImage:[UIImage imageNamed:defaultImageName] forState:UIControlStateNormal];
IOS 7をサポートしている場合は、tintColor
とUIImageRenderingModeAlwaysTemplate
を使用できます
この記事では以下について説明します。
https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming
以前のバージョンをサポートする必要がある場合は、このスレッドを検討してください。
Swift 4、コピーアンドペーストソリューション
@IBOutlet weak var iconImageView: UIImageView!
iconImageView.image = UIImage(imageLiteralResourceName: "myImageName").withRenderingMode(.alwaysTemplate)
iconImageView.tintColor = UIColor.red
IOS 9でSwiftで色合いと不透明度を使用する方法は次のとおりです-
//apply a color to an image
//ref - http://stackoverflow.com/questions/28427935/how-can-i-change-image-tintcolor
//ref - https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming
func getTintedImage() -> UIImageView {
var image :UIImage
var imageView :UIImageView
image = UIImage(named: "someAsset")!
let size : CGSize = image.size
let frame : CGRect = CGRectMake((UIScreen.mainScreen().bounds.width-86)/2, 600, size.width, size.height)
let redCover : UIView = UIView(frame: frame)
redCover.backgroundColor = UIColor.redColor()
redCover.layer.opacity = 0.75
imageView = UIImageView();
imageView.image = image.imageWithRenderingMode(UIImageRenderingMode.Automatic)
imageView.addSubview(redCover)
return imageView
}