1

テーブルビューがあり、accessoryviewボタンをカスタマイズしたい。そのために、私は半透明のピクセルを持つカスタムPNG画像を持っています。

UIButton *myAccessoryButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
[myAccessoryButton setUserInteractionEnabled:YES];

[myAccessoryButton setBackgroundColor:[UIColor clearColor]];

[myAccessoryButton setImage:[UIImage imageNamed:@"accessory_btn"] forState:UIControlStateNormal];
[myAccessoryButton addTarget: self
                      action: @selector(accessoryButtonTapped:withEvent:)
            forControlEvents: UIControlEventTouchUpInside];

[cell setAccessoryView:myAccessoryButton];

そして、それは1つの問題を除いて、ボタンの描画には問題なく機能します。私のテンプレート(PSD)では、このボタンにはブレンドモード(オーバーラップ)があり、PSD形式からそのボタンをエクスポートすると、同じオーバーラップブレンドモードでテーブルの背景とブレンドする必要がある白い半透明のピクセルがあります。ただし、アクセサリビューをカスタマイズするためにUIImageとしてロードすると、デフォルトでエクスポートされたPNGブレンドがデフォルトモードになります。

UIImageまたはUIButtonまたはAccessoryViewのブレンドモードを変更するにはどうすればよいですか?

フォトショップビューです シミュレータービューです ここに画像の説明を入力してください

4

1 に答える 1

1

左の写真はPhotoshopで得られるものですか?色相を変えずに背景を明るくしたいですか?もしそうなら、それを達成する簡単な方法はありません。

2つの部分的な解決策があります。

  1. 背景を描画し、適切なを使用してグローを描画する単一のdrawRectブロック(または同等のもの)を用意します。CALayerCGBlendMode
  2. 画像を編集して、下部の輝きが現在の背景の茶色の色合いになるようにします。

いずれにせよ、柔軟性が失われます。ボタンをドラッグしたり、背景のグラフィックを変更したりして、すべてをうまくマージすると便利です。

これは変更される可能性があります。 CALayerすでに。というプロパティがありますcompositingFilter。ただし、iOS 5.1の時点では、その動作は定義されていません。iOSが機能する合成フィルターを持っている将来誰かがこれを読んだら、そう言うためにコメントを追加してください。

于 2012-04-26T04:16:40.790 に答える