【问题标题】:Objective C - Help with UIButton showing variable TitlesObjective C - 帮助 UIButton 显示变量标题
【发布时间】:2011-01-26 05:55:59
【问题描述】:

首先,我是一个菜鸟,所以感谢任何帮助。我编写了以下代码来更改每次启动按钮的标题。当我测试代码时,我可以在几分之一秒内看到新的按钮标签,然后按钮又是空白的(因为它已经开始了)。我只看到前三个触摸,所以我认为我的计数方法也有问题。代码如下:

-(IBAction)pressButton:(id)sender {
static int counter = 0;

if (counter == 0) {
    [[sender titleLabel] setText:@"not answered"];
}else if (counter == 1) {
    [[sender titleLabel] setText:@"Pressed Once"];
}else if (counter == 2) {
    [[sender titleLabel] setText:@"Pressed Twice"];
}
counter += 1;

if (counter >2) {
    counter = 0;
}
}

提前感谢您的帮助!

【问题讨论】:

    标签: iphone objective-c ipad uibutton


    【解决方案1】:

    你想使用:

    [(UIButton *)sender setTitle:@"XXX" forState:UIControlStateNormal];
    

    直接设置标签是行不通的,因为它是由按钮逻辑在内部操作的。

    【讨论】:

    • +1 您还需要将其UIControlStateHighlighted 设置为新文本,否则当用户点击按钮文本时,按钮文本将更改为旧状态。
    • 谢谢!在我做出您建议的更改并更改计数器的逻辑后效果很好。
    • 顺便说一句,如果您知道只有按钮会向 pressButton 发送事件,您可以直接将第一个参数设为 (UIButton *)。它不必是通用 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2012-11-12
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多