如何在 UIButton 中的选定状态下从正常状态和标题文本设置 UIImage
Posted
技术标签:
【中文标题】如何在 UIButton 中的选定状态下从正常状态和标题文本设置 UIImage【英文标题】:How to set UIImage from nomal state and title text in the selected state in UIButton 【发布时间】:2013-02-28 04:52:18 【问题描述】:如何在我的 UIButton 中将 UIImage 设置为正常状态并将标题设置为选中状态?
您好,我尝试将 UIImage 设置为 UIButton 的正常状态,但是当将 UImage 设置为正常状态时,这会更改 UIButton 在选定状态下的标题,从而更改图像的标题。我正在使用
myButton setTitle:content forState:UIControlStateSelected
处于选定状态。
如何在我的 UIButton 中将 UIImage 设置为正常状态并将标题设置为选中状态?
PDT:对不起我的英语!
【问题讨论】:
如果您从 xib 添加,则只能在此处获得选项 所以这里你想设置正常状态的图像,只选择标题(无图像)? 使用按钮标签解决 【参考方案1】:试试这个:
选择BOOL;
-(IBAction)btnClicked:(UIButton *)sender
if(selected)
[chkBtn setTitle:@"selected" forState:UIControlStateNormal];
chkImage.image=[UIImage imageNamed:@" "];
NSLog(@"%@",chkBtn.titleLabel);
selected=NO;
else
[chkBtn setTitle:@" " forState:UIControlStateNormal];
chkImage.image=[UIImage imageNamed:@"button_minus_pink.png"];
selected=YES;
【讨论】:
【参考方案2】:// 使用UIColor
设置
[self.button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
//用UIImage
设置
[self.button setBackgroundImage:[UIImage imageNamed:@"BlackRightBtn.png"] forState:UIControlStateNormal];
为Button Selected
if (self.button.isSelected == YES)
[self.button setTitle:@"Your_ButtonTitle" forState:UIControlStateNormal];
【讨论】:
【参考方案3】:像这样添加你的代码:
[myButton setTitle:@"Your String" forState:UIControlStateSelected];
[myButton setImage:[UIImage imageNamed:@"img.png"] forState:UIControlStateSelected];
[myButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[myButton setTitle:@"" forState:UIControlStateNormal];
img.png 不应该出现在你的包中
您也可以通过 Interface Builder 进行设置。
【讨论】:
【参考方案4】:您可以为正常和选定状态定义按钮和setImage
。像这样。
buttonJobs = [UIButton buttonWithType:UIButtonTypeCustom ];
buttonJobs.tag = 1;
[buttonJobs setTitle:@"Jobs" forState:UIControlStateNormal];
buttonJobs.frame = CGRectMake(2, 56, 109, 33);
[buttonJobs setImage:[UIImage imageNamed:@"tabButtonImage_Off.png"] forState:UIControlStateNormal];//buttonJobs.png
[buttonJobs setImage:[UIImage imageNamed:@"tabButtonImage_On.png"] forState:UIControlStateDisabled];
[buttonJobs addTarget:self action:@selector(btnNextTab:) forControlEvents:UIControlEventTouchUpInside];
在按钮选择器方法中,您可以根据sender's tag
设置您选择的按钮。
-(void)btnNextTab:(UIButton*)sender
if(sender.tag == 1)
sender.selected = YES;
对于标题,您可以更改文本的颜色。
希望这会对你有所帮助。
【讨论】:
好的,但是如果我不想只在选定的状态下设置 UIImage,但我只想在选定的状态下设置标题(文本)?我该怎么做?【参考方案5】:检查此代码:
[myButton setTitle:content forState:UIControlStateSelected];
[myButton setImage:nil forState:UIControlStateSelected];
[myButton setImage:yourImage forState:UIControlStateNormal];
【讨论】:
@kakashy: 很高兴:)【参考方案6】:试试这个代码:
[myButton setTitle:@"Your String" forState:UIControlStateSelected];
[myButton setImage:nil forState:UIControlStateSelected];
[myButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[myButton setTitle:@"" forState:UIControlStateNormal];
【讨论】:
以上是关于如何在 UIButton 中的选定状态下从正常状态和标题文本设置 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
单击选定的 UIButton 时未显示 UIButton 突出显示状态
在 CABasicAnimation 期间 UIButton 未显示选定状态