【问题标题】:Subtract one from integer displayed in UILabel从 UILabel 中显示的整数中减一
【发布时间】:2011-07-29 22:31:17
【问题描述】:

我有一个UILabel,当按下按钮时,它的值会加一——基本上它会增加。有人可以帮我减号吗?这样,如果用户不小心按了比他们需要的次数更多的添加按钮,他们可以减去他们的错误。我已经尝试过了,但标签的文本现在设置为 -1。我希望它每次按下时减去一个:

- (IBAction)subtractButton:(id)sender {
    static int integerSaved;
    integerSaved = integer;
    integerSaved -= 1;
    [label2 setText:[NSString stringWithFormat:@"%i", integerSaved]];
}

【问题讨论】:

    标签: objective-c ios cocoa-touch uilabel


    【解决方案1】:

    试试这个:

    - (IBAction)subtractButton:(id)sender {
    [label2 setText:[NSString stringWithFormat:@"%d",[label2.text intValue] - 1]];
    }
    

    【讨论】:

    • 好的,我试过了,但我收到一个错误,它指向 -1 之后的最后一个“]”,它只是说“预期的标识符”。你知道代码有什么问题吗?想不通?
    • 你在“NSString”之前多了一个括号。把它拿出来,现在应该可以在 NSString 上调用 intValue 了。
    【解决方案2】:
    -(void)subtract
    {
       label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1];
    }
    

    此代码假定您没有使用 Interface Builder,并且您正在手动将“减法”链接到 UIButton。如果您使用的是 Interface Builder,请尝试此代码。

    -(IBAction)subtract:(id)sender
    {
       label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1];
    }
    

    我没有对此进行测试,但我认为它应该可以工作。祝你好运!

    【讨论】:

      【解决方案3】:

      使用UIView实例的值做算术不是MVC的方式。你真的应该把你的数据模型从你的视图中分离出来。

      在某个类中公开intNSIntegerNSNumber 属性,该类专用于为您的应用保存数据值。

      当给定按钮出现触摸事件时,增加 data 属性并触发通知,根据属性中的内容更新视图。或在属性中添加observer。然后观察者在属性值改变时更新视图。

      与获取UIView 的值,将其转换为整数,然后将其转换回字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多