UIButton 显示 BackgroundImage、Image 和 Title
Posted
技术标签:
【中文标题】UIButton 显示 BackgroundImage、Image 和 Title【英文标题】:UIButton to show BackgroundImage, Image and Title 【发布时间】:2012-05-07 09:32:52 【问题描述】:我想创建一个使用其setBackgroundImage
、setImage
和setTitle
属性的UIButton
,但是当我将setTitle
与setImage
和setBackgroundImage
组合添加时,标题不会出现。
我尝试了以下方法。
[button setBackgroundImage:[UIImage imageNamed:@"image3.jpg"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"month_pct_general.png"] forState:UIControlStateNormal];
[button setTitle:[NSString stringWithFormat:@"%d",[button tag]] forState:UIControlStateNormal];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:20.0f]];
[button setTitleEdgeInsets:UIEdgeInsetsMake(45, 0, 0, 25)];
【问题讨论】:
您使用的是自定义类型的按钮吗? 你用过这个语法吗[button setTitle;@"name" forState:UIControlstateNormal]; [按钮 setBackgroundImage:[UIImage imageNamed:@"image3.jpg"] forState:UIControlStateNormal]; [按钮 setImage:[UIImage imageNamed:@"month_pct_general.png"] forState:UIControlStateNormal]; [button setTitle:[NSString stringWithFormat:@"%d",[button tag]] forState:UIControlStateNormal]; [按钮 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [button.titleLabel setFont:[UIFont boldSystemFontOfSize:20.0f]]; [按钮 setTitleEdgeInsets:UIEdgeInsetsMake(45, 0, 0, 25)]; setImage 覆盖标题,怎么办 【参考方案1】:按钮上的标题和所有图像的标题上,所以像这样在图像上添加标签。
UIButton *myButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
[myButton setFrame:CGRectMake(0,3,70,32)];
[myButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(compete) forControlEvents:UIControlEventTouchUpInside];
UILabel *Label=[[UILabel alloc]initWithFrame:CGRectMake(6, 5, 60, 20)];
[Label setText:@"label"];
Label.backgroundColor=[UIColor clearColor];
[Label setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12]];
Label.textColor=[UIColor whiteColor];
[myButton addSubview:Label];
您的所有图片仅在标题上方,因此您的标题在背景中,因此请在图片视图上使用标签。
【讨论】:
如果这对您有帮助,请通知我们。 这个答案有效,但不是正确的解决方案。您需要更改 UIButton 的 titleLabelEdgeInsets 属性。图像将标签推向右侧。这就是为什么你看不到它。【参考方案2】:如果您使用界面生成器制作 GUI,则单击标签并转到编辑器-> 排列-> 发送到前面。
【讨论】:
以上是关于UIButton 显示 BackgroundImage、Image 和 Title的主要内容,如果未能解决你的问题,请参考以下文章
禁用 UIButton 的突出显示 UIControl 状态
Swift3:UITableViewCell 和 UIButton - 通过单击 UIButton 显示和隐藏 UITableViewCell