2010-07-09 68 views
2

因此,我对此iPad业务很陌生,并且基于XML文件的内容以编程方式在scrollview中创建了一些按钮。我有这样的代码上进行:iPad - 以编程方式将文本设置为按钮

float x = (SLIDER_ELEMENT_HEIGHT * i) + 20; 
CGRect frame = CGRectMake(x, 0, SLIDER_ELEMENT_WIDTH, SLIDER_ELEMENT_HEIGHT); 
UIButton *button = [[UIButton alloc] initWithFrame:frame]; 

UIColor *bgColor = [[UIColor alloc] initWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; 
button.backgroundColor = bgColor; 

NSString *titleForButton = [NSString stringWithFormat: @"This is my title"]; 
[button setTitle:titleForButton forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)]; 

UIColor *fgColor = [[UIColor alloc] initWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]; 
[button setTitleColor:fgColor forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)]; 

[button addTarget:self action:@selector(buttonMethod:) forControlEvents:(UIControlEvents)UIControlEventTouchDown]; 
[scrl_lastIssues addSubview:button]; 

现在,方法听者,我追加的工作正常,但按钮的文字一直没有出现什么......我做错了?

感谢您的帮助!

回答

5

尝试改变线:

[button setTitle:titleForButton forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)]; 

到:

[button setTitle:titleForButton forState:UIControlStateNormal]; 

的forState参数不工作,你目前所期望的方式,它的工作原理是:

[button setTitle:@"Normal" forState:UIControlStateNormal]; 
    [button setTitle:@"Highlighted" forState:UIControlStateHighlighted]; 
+0

谢谢,这解决了我的问题!我刚刚看到一个论坛,他们用这条线来设置文本。 – 2010-07-09 16:56:32

0

如果你想为所有状态设置相同的标题,然后执行此操作:

[button setTitle:titleForButton forState:UIControlStateNormal]; 
[button setTitle:titleForButton forState:UIControlStateHighlighted]; 
1

此外,如果您只设置了UIControlStateNormal文本,它将成为所有控制状态的文本,您已通过位OR分离,也就是我相信您正在搜索的功能。

0
[button setTitle:@"Return" forState:UIControlStateNormal]; 
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; 
    [button setBackgroundColor:[UIColor orangeColor]]; 
相关问题