2011-10-25 10 views
5

UIButtonの図面を呼び出すメソッドは何ですか?UIButtonの背景画像の上にカスタム図面

私はUIButtonサブクラスを持っています。UIMyButtonとしましょう。私はそれを.xibコントローラに加えて、バックグラウンドイメージを与えます。 UIMyButton.mファイルでは、drawRectメソッドをオーバーライドしてシェイプを描画します。 何かのように:

- (void)drawRect:(CGRect)rect { 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor); 
    CGContextFillRect(c, rect); 
} 

問題は、それが背景画像の下にオレンジ色の四角形を描画していることです。背景画像を描画/更新する方法はどれですか(「タップダウン」などで更新します)?追加のカスタムサブビューをボタンに追加しなくても、描画を強制的に上に置くにはどうすればいいですか(または背景画像自体はサブビュー自体です)?

私は、UIButton描画シーケンスの仕組みをはっきりと理解しようとしています。

+0

こんにちはバステックですか?本当にあなたは以下の優れた答えをチェックしてください! – Fattie

答えて

4

解決策は、ボタンの背景を使用しないことです。代わりに、drawRectメソッドの内部に画像を描画します。

-(void)drawRect:(CGRect)rect 
{ 
    CGContextRef ctx=UIGraphicsGetCurrentContext(); 

    UIImage *image = [UIImage imageNamed:@"image.jpg"]; 
    [image drawInRect:self.bounds]; 

    CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor); 
    CGContextFillRect(c, rect); 
} 
関連する問題