に画像を設定しましたUIButton
が、この画像の上にタイトルを設定する必要があります。これどうやってするの?
[button setImage:[UIImage imageNamed:@"btn_select_s.png"] forState:0];
[button setImage:[UIImage imageNamed:@"btn_select_p.png"] forState:1];
[button setTitle:@"my title" forState:0];
に画像を設定しましたUIButton
が、この画像の上にタイトルを設定する必要があります。これどうやってするの?
[button setImage:[UIImage imageNamed:@"btn_select_s.png"] forState:0];
[button setImage:[UIImage imageNamed:@"btn_select_p.png"] forState:1];
[button setTitle:@"my title" forState:0];
UIButton の titleEdgeInsets と imageEdgeInsets を使用して、必要に応じてタイトルと画像を配置できます。
Apple の UIButton リファレンス ドキュメントを参照してください。
たとえば、UIButton サブクラスでは次のようになります。
[self setImageEdgeInsets:UIEdgeInsetsMake(imageFrame.origin.y, imageFrame.origin.x, 0, 0)];
[self setTitleEdgeInsets:UIEdgeInsetsMake(labelFrame.origin.y, labelFrame.origin.x, 0, 0)];
代わりに、ボタンの背景画像を設定する必要があります。
[button setBackgroundImage:[UIImage imageNamed:@"foo"] forState:UIControlStateNormal];
[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[button setContentVerticalAlignment:UIControlContentVerticalAlignmentTop];
//Use you values for edge insets here.
[button setTitleEdgeInsets:UIEdgeInsetsMake(20.0f, 10.0f, 0.0f, 0.0f)];
ここに便利な UIButton サブクラスがあります:
https://github.com/lionhylra/FlexButton
次のような機能があります。 - 4 つのレイアウト スタイルを提供します。
- UIButton と同じくらい簡単に動作します。
- ボタンのサイズを調整すると、それに応じて imageView と titleLabel のサイズが正しく変更されます。彼らは無秩序に置かれることはありません。これは、エッジ インセットを使用する場合との本質的な違いです。
- TitleLabel と imageView は、常に垂直方向と水平方向の中央に配置されます。