2015-04-17 117 views
1

我正在学习Xcode(目标C)。我想做一个简单的计算器。将按钮添加到UILabel

我开始时添加了四个简单的按钮和一个标签。两个按钮的编号(1和2),和我添加变量到.m文件:

int *one = 1; 
int *two = 2; 

下一步我所做的是,我做了行动点击按钮,并表示,从该标签取值按钮:

self.firstLabel.text=[NSString stringWithFormat:@"%d", one); 

而且我对另一个按钮做了同样的动作。

一切都很好,直到这一步,我想要做的下一步是当我点击数字按钮来增加值到该标签,然后当我点击分(/)按钮添加/签名,当我点击另一个按钮添加另一个值。

我想在标签:2/1中是这样的,当我点击=按钮将它们分开并显示结果。谢谢。

编辑

我还添加了标签适当成.h和当我点击按钮,它让我在标签只有一个值。

+2

你不需要'int * one = 1;'。你想'int one = 1;'。 'int'是一个原始类型,所以你不需要一个指针。 – rmaddy

+0

好吧,我改变了,但它没有解决问题... – Stefan

+0

请分享你的按钮行动也。我不明白这一点。尝试分享更多的代码,可以有简单的解决方案。 –

回答

1

由于您刚开始学习obj C,您可能希望保持计算器简单,构建一个功能齐全的计算器。可以变得非常复杂。您应该考虑使用方法,它会使事情变得更容易,您可以将数字推入堆栈并逐个执行操作。 例如:2,输入1,输入+输入。

您可能也想看看Stanford's iOS course on Apple University,该课程是在Swift中,但课程项目是一个计算器,所以它应该给你一个很好的参考点。希望有所帮助,祝你好运!

0

你应该添加一个自定义的目标为每个按钮,即

- (IBAction)addDivide:(id)sender { 
    self.firstLabel.text = [[NSString alloc] initWithFormat:@"%@ /", self.firstLabel.text]; 
} 

任何操作将更新您的标签。

只是给你一个进一步的建议,不要将标签命名为“firstLabel”,试着给它起一个和它的语义相关的名字。

0

您只将int值设置为标签。您需要追加保留前一个文本的值,使其显示为“2/1”。 我会建议使用按钮的标签,并使用计算器中数字按钮的常用方法。 这是更具逻辑性的东西,而不是特定于iOS和Xcode。 类似地,当“=”被按下时,使用一种方法来计算结果。