Bezelボタンを作る[09]ディゼーブル(無効)状態

2010年6月23日水曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

[前回]Bezelボタンを作る[08]タッチした時のリアクションを実装する

今回はディゼーブル状態の描画を行う。


ディゼーブル状態の描画

Bezelボタンは UIControl のサブクラスなので有効/無効状態を表すプロパティ enabled を持っている。この値を見てディゼーブル状態の描画を行う。今回は画像の色を薄くしてみよう。具体的には alpha値を下げて半透明化する。

こんなかんじ。
- (void)drawImageOnContext:(CGContextRef)context offset:(CGPoint)offset
{
 if (self.image) {
  CGRect buttonFrame = [self bounds];
  CGRect imageFrame = CGRectInset(buttonFrame, IMAGE_PADDING, IMAGE_PADDING);
  imageFrame.origin.x += offset.x;
  imageFrame.origin.y += offset.y;

  if (self.enabled) {
   [self.image drawInRect:imageFrame];
  } else {
   [self.image drawInRect:imageFrame blendMode:kCGBlendModeNormal alpha:0.5];
  }
 }
}
半透明に画像を描くには -[UIImage drawInrect:blendMode:alpha:]を使う。

実行結果:
enabled == YES
enabled == NO

Responses

Leave a Response

人気の投稿(過去 30日間)