白または黒を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