2013-02-28 37 views
3

如何在正常状态下设置UIImage并将UIButton中的标题设置为选中状态?我试图在UIButton的正常状态下设置UIImage,但是当在正常状态下设置UImage时,这会更改所选状态下UIButton的标题,从而更改图像的标题。我在选择的状态使用如何在UIButton中选择状态和标题文本的UIImage

myButton setTitle:content forState:UIControlStateSelected

如何在正常状态下设置UIImage并在我的UIButton中选择状态设置标题?

PDT:抱歉我的英语!

+0

如果你从xib中添加你得到的选项只有 – amar 2013-02-28 05:03:16

+0

那么这里你想设置图像为正常状态,只有标题(无图像)选择? – rptwsthi 2013-02-28 05:04:25

+0

使用按钮标签来解决 – Rajneesh071 2013-02-28 09:26:48

回答

0

检查与此代码:

[myButton setTitle:content forState:UIControlStateSelected]; 
[myButton setImage:nil forState:UIControlStateSelected]; 
[myButton setImage:yourImage forState:UIControlStateNormal]; 
+0

是的,它的工作原理,谢谢! – kakashy 2013-03-01 12:19:17

+0

@kakashy:With Pleasure :) – 2013-03-01 12:24:52

1

//与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]; 
} 
0

试试这个代码:

[myButton setTitle:@"Your String" forState:UIControlStateSelected]; 
[myButton setImage:nil forState:UIControlStateSelected]; 

[myButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal]; 
[myButton setTitle:@"" forState:UIControlStateNormal]; 
1

可以正常和选择的状态定义按钮和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; 
    } 

} 

而对于标题,您可以更改文字的颜色。

希望这会帮助你。

+0

好吧,但是如果我不想在选中的状态下设置UIImage,但我只想在所选状态下设置Title(文本)?我怎么能做到这一点? – kakashy 2013-03-01 01:55:20

3

试试这个:

BOOL selected;

-(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; 
    } 

}

1

添加如下代码:

[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不应该出现在你的包

你可以设置通过界面生成器为好。