我正在创建一个按钮,左侧是图像,中间是文本。 它可以工作,但不知何故,红色的背景颜色不会覆盖整个按钮。
self.buyButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.buyButton.titleLabel setBackgroundColor:[UIColor buttonRed]];
UIImage *image = [UIImage imageNamed:@"cart.png"];
[self.buyButton setImage:image forState:UIControlStateNormal];
self.buyButton.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
[self.buyButton setTitle:@"Buy" forState:UIControlStateNormal];
self.buyButton.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
self.buyButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[1] http://s23.postimg.org/g8hxmihyv/Screen_Shot_2013_08_07_at_5_45_40_PM.png“快照”
如果我将整个按钮设置为红色,则看起来像这样。 [1] http://s21.postimg.org/xdwrziphv/Screen_Shot_2013_08_07_at_5_50_15_PM.png“snapshot2”
答案 0 :(得分:3)
那是因为你只是将titleLabel的背景颜色设置为红色。尝试使用自定义按钮设置按钮本身的背景颜色,并更改按钮图层的角半径(#import <QuartzCore/QuartzCore.h>
)。例如:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundColor:[UIColor redColor]];
[button.layer setCornerRadius:5.0f];
此外,可能需要将titleLabel的颜色更改为clearColor。