我在 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];
我在 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];
您可以使用 UIButton 的 titleEdgeInsets 和 imageEdgeInsets 来根据需要定位标题和图像。
例如,在 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 将始终垂直和水平居中。