2013年6月6日木曜日

UIButtonの背景画像の透過について

UIButtonの背景に画像を使用する場合、透過PNGを使用しているにも関わらず上手く透過されないときの対処方法をメモで。

原因

結論から言うと、初期化の際に指定する引数の値が原因でした。

UIButtonクラスでbuttonWithType:メソッドを使い初期化する場合なのですが、はじめはUIButtonTypeRoundedRectを指定していました。ですがこれだと上手く画像を透過させることができません。

画像を透過させる場合はUIButtonTypeCustomを指定してあげます。

解決方法

// 透過されない
// UIButtonTypeRoundedRectを指定
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

//  透過される
// UIButtonTypeCustomを指定
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];  

おわり

これの面白いところが、iOS6(シミュレータ)ではどちらを指定しても画像を正常に透過できたことです。

ですがiOS5.1ではUIButtonTypeRoundedRectを指定した場合は今回のように画像の透過はされませんでした。

iOS6からは画像が挿入されたら自動的にUIButtonTypeRoundedRectではなくUIButtonTypeCustomが指定されるようになったかなあ。

関連記事

画像透過の制約 -うたブログ〜情報編

0 件のコメント:

コメントを投稿