2012-04-25 8 views
1

私はテーブルビューを持っています。アクセサリビューボタンをカスタマイズしたいと思います。 私は半透明のピクセルでカスタム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フォーマットからそのボタンをエクスポートすると、同じオーバーラップブレンドモードで表の背景とブレンドする白い半透明のピクセルがあります。しかし、デフォルトでエクスポートされたPNGは、アクセサリビューをカスタマイズするためにUIImageとしてロードするときにデフォルトモードでブレンドされます。

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

it's photoshop view it's simulator view enter image description here

+0

写真を投稿することは可能ですか?Photoshopはどのように見た目を表示するのか、そして現在の見た目を示すアプリからですか?つまり、ビューの設定を変更するだけでは、あなたが望むことはできないでしょう。 'CGBlendMode'を使って手動で描画すると、多くの有用な合成効果にアクセスできます。したがって、 'UIView'サブクラスを作成し、次に' drawRect'メソッドでテーブルの背景の一部を描画し、必要なブレンドモードで上に画像を描画します。背景を描くステップをスキップするといいですが、おそらくできません。 – Dondragmer

+0

@dondragmerご返信ありがとうございます。私はメイントピックにサンプルを添付します。あなたが正しいと思っていることは、私が望むことをするための唯一の方法です。( –

答えて

1

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

二つの部分解決策がある:

  1. は、背景を描画し、適切なCGBlendModeを使用してグローを描画単一drawRectブロック(またはそのCALayer等価物)を有します。
  2. 画像を編集して、下のグローがあなたの現在の背景の茶色になるようにします。

いずれにせよ、柔軟性が失われます。あなたのボタンの周りをドラッグするか、背景のグラフィックを変えて、すべてがうまくマージされるようにするのが良いでしょう。

これは変更されることがあります。 CALayerにはすでにcompositingFilterというプロパティがあります。ただし、iOS 5.1以降、その動作は未定義です。誰かがiOS のフィルタが動作する合成フィルタがある場合は、これを読んでください。

+0

Thanx。はい - 左はPhotoshopの写真です。右はシミュレータです。半透明の白から半透明の茶色に変えてください)しかし、私が望むことをやるのは本当に簡単です。結果は非常に近い –

+0

次は何をしたいのですか?次に重なりブレンドモードをデフォルトに変更します。赤茶色の部分があり、ノイズが入っています。これはシミュレータのオリジナルと非常によく似ています(3番目の画像) –

関連する問題