色調 UIButton 画像 質問する

色調 UIButton 画像 質問する

白または黒をUIImageに配置するとUISegmentedControl、セグメント化されたコントロールの色合いに合わせて自動的にカラー マスクが実行されることに気付きました。これは非常に優れた機能だと思い、他の場所でも同様のことができるかと考えました。たとえば、形は均一だが色が異なるボタンが多数あります。ボタンごとに PNG を作成する代わりに、このカラー マスクを使用してすべてのボタンに同じ画像を使用し、色合いなどを設定して実際の色を変更することは可能でしょうか。

ベストアンサー1

iOS 7 以降では、UIImageレンダリング モードを指定するための新しい方法があります。レンダリング モードを使用すると、UIImageRenderingModeAlwaysTemplateボタンの色合いによって画像の色を制御できるようになります。

オブジェクティブC

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *image = [[UIImage imageNamed:@"image_name"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button setImage:image forState:UIControlStateNormal]; 
button.tintColor = [UIColor redColor];

迅速

let button = UIButton(type: .custom)
let image = UIImage(named: "image_name")?.withRenderingMode(.alwaysTemplate)
button.setImage(image, for: .normal)
button.tintColor = UIColor.red

おすすめ記事