Dus*_*tin 36 objective-c uibutton ios
我觉得这可能是一个愚蠢的问题...但无论如何我有这种奇怪的UIButton标题行为.
该按钮被设置并连接到IB中的动作和属性(动作是startButtonPushed和属性startButton).在视图控制器内部,我的动作设置如下:
bool buttonStateStop;
- (IBAction)startPushed:(id)sender
{
if (buttonStateStop)
{
[appD.locationManager stopSavingLocations];
startButton.titleLabel.text = @"Start";
buttonStateStop = NO;
}
else
{
[appD.locationManager startSavingLocations];
startButton.titleLabel.text = @"Stop";
buttonStateStop = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
最初我将IB中的默认标题设置为"开始",但每当我按下按钮时,它将变为"停止"几分之一秒然后返回.我花了一些时间试图找出为什么标题一直被设置回"开始".最终我将IB标题更改为"xxxxxx",并意识到无论如何,在标题按钮更改后立即重新确认IB标题.
所以问题是:为什么IB不断将按钮的标题更改为默认值?我以前从未遇到过这种行为.(显然)我该如何解决?
额外的信息:该按钮只引用了@property,@synthesize和上面代码中的语句.视图位于导航控制器内部.
das*_*ght 70
您需要使用setTitle:forState:方法而不是设置titleLabel.text属性:
[startButton setTitle:@"Start" forState:UIControlStateNormal];
// Normal and highlighted titles do not need to be the same
[startButton setTitle:@"Start!" forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
现在发生的是你在标签中设置代表当前状态视图的标题,但是一旦状态从推到正常变化,按钮会将标签重置回新状态的标题(这是文本你设置在IB).
这个的快速版本是
startButton.setTitle("Start", forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7103 次 |
| 最近记录: |