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];
4

4 に答える 4

4

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)];
于 2013-02-20T16:47:39.460 に答える
1

代わりに、ボタンの背景画像を設定する必要があります。

[button setBackgroundImage:[UIImage imageNamed:@"foo"] forState:UIControlStateNormal];
于 2013-02-20T16:46:37.303 に答える
0
[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[button setContentVerticalAlignment:UIControlContentVerticalAlignmentTop];

//Use you values for edge insets here.
[button setTitleEdgeInsets:UIEdgeInsetsMake(20.0f, 10.0f, 0.0f, 0.0f)];
于 2013-02-20T16:49:24.333 に答える
-1

ここに便利な UIButton サブクラスがあります:
https://github.com/lionhylra/FlexButton

次のような機能があります。 - 4 つのレイアウト スタイルを提供します。
- UIButton と同じくらい簡単に動作します。
- ボタンのサイズを調整すると、それに応じて imageView と titleLabel のサイズが正しく変更されます。彼らは無秩序に置かれることはありません。これは、エッジ インセットを使用する場合との本質的な違いです。
- TitleLabel と imageView は、常に垂直方向と水平方向の中央に配置されます。

于 2015-10-08T02:51:34.597 に答える