1

UIButtonのサブクラスを作成し、「パディング」を設定したいと思います。ボタンのフレームは、テキストよりも常に両側で15ピクセル広くしたいと思います。

drawRectメソッドでは、ボタンのフレームをテキストの幅より30ピクセル広く設定しました。しかし、これを実行しようとすると、フレームがまったく調整されません。uibuttonのフレームを変更した後、このフレームは調整されますか?フレームを調整してパディングを設定するにはどうすればよいですか?

これが私のコードです:

- (void)drawRect:(CGRect)rect{
[self setBackgroundImage:[[UIImage imageNamed:@"submitBtn.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0] forState:UIControlStateNormal];
[self setFrame:CGRectMake(rect.origin.x, rect.origin.y-90, self.titleLabel.frame.size.width + 30, self.frame.size.height)]; 
}

答えてくれてありがとう!

4

1 に答える 1

2

メソッドをオーバーライドして、setTitle:forState:そこでフレームを調整する必要があります。また、背景画像を。以外の場所に設定する必要がありますdrawRect:。良い場所はinitXXX方法でしょう。

あなたがしなければならない唯一のことdrawRect:は、実際には現在の状態に基づいてビューのコンテンツをレンダリングすることです。で状態を変更しないでくださいdrawRect:

于 2012-11-01T21:59:39.460 に答える