gpt4 book ai didi

objective-c - UIButton 标题更改为默认值

转载 作者:IT老高 更新时间:2023-10-28 11:49:13 24 4
gpt4 key购买 nike

我觉得这可能是一个愚蠢的问题......但无论如何我有这种奇怪的 UIButton 标题行为。

按钮已设置并连接到 IB 中的 Action 和属性( Action 是 startButtonPushed,属性是 startButton)。在 View Controller 内部,我的操作设置如下:

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

最初我将 IB 中的默认标题设置为“开始”,但每当我按下按钮时,它会在几分之一秒内变为“停止”,然后返回。我花了一段时间试图弄清楚为什么标题总是回到“开始”。最终,我将 IB 标题更改为“xxxxxx”,并意识到无论如何,按钮标题更改后,IB 标题都会立即重新声明。

所以问题是:为什么 IB 不断将按钮的标题改回默认值?我以前从未遇到过这种行为。并且(显然)我该如何解决?

额外信息:对按钮的唯一引用是 @property@synthesize 和上面代码中的语句。 View 位于导航 Controller 内部。

最佳答案

您需要使用 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];

现在发生的情况是,您在标签中设置了代表当前状态 View 的标题,但是一旦状态从 push 变为 normal,按钮会将标签重置为新状态的标题(即您在 IB 中设置的文本)。

关于objective-c - UIButton 标题更改为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11583387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com