0

我在 a 中设置了一张图片,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 回答