iOS总结按钮值,计算器概念

时间:2014-05-06 07:36:36

标签: ios button

我是ios开发的新手

这里我试图制作一个基本的计算器概念

@interface ViewController : UIViewController{
IBOutlet UILabel* myLabel;

int sum;
}

 -(IBAction)onePressed:(id)sender{
printf("1");

UIButton* button1 = sender;

NSString* button1Text = button1.titleLabel.text;

int value = [button1Text intValue];

// String.format("value: %d", value);
myLabel.text = [NSString stringWithFormat:@"value: %d", value];
}

-(IBAction)twoPressed:(id)sender{
printf("2");

UIButton* button2 = sender;

NSString* button2Text = button2.titleLabel.text;

int value = [button2Text intValue];

// String.format("value: %d", value);
myLabel.text = [NSString stringWithFormat:@"value: %d", value];
}

-(IBAction)threePressed:(id)sender{
printf("3");

UIButton* button3 = sender;

NSString* button3Text = button3.titleLabel.text;

int value = [button3Text intValue];

// String.format("value: %d", value);
myLabel.text = [NSString stringWithFormat:@"value: %d", value];
}

我制作了3个按钮

当用户点击其中一个按钮时,该值将与之前的值相加,并且该值将显示在标签中

谁知道怎么做?

感谢

3 个答案:

答案 0 :(得分:4)

为您的按钮添加标签。例如twoButton.tag = 2;或在Interface Builder中执行。

将您的代码(至少)更改为:

@interface MyClass ()
@property (nonatomic, assign) NSInteger currentValue;
@end


@implementation MyClass

- (IBAction)twoPressed:(UIButton*)sender {
    NSLog(@"twoPressed");

    self.currentValue += sender.tag;

    myLabel.text = [NSString stringWithFormat:@"value: %d", self.currentValue];
}

@end

答案 1 :(得分:2)

您已经安装了iVar sum - 只需按下每个按钮即可将其合计。正如@Wain建议的那样,你应该改为NSInteger而不是int,但是任何一种方式都可以。

此外,由于您使用的是按钮的值,因此您只需要为所有按钮设置一个操作处理程序 - 在IB中,只需将touchUpInside连接到单个IBAction buttonPressed:(id)sender

-(IBAction) buttonPressed:(id)sender
{
    UIButton *button=(UIButton *)sender;
    sum += [button.titleLabel.text intValue];
    myLabel.text = [NSString stringWithFormat:@"value: %d",sum];
}

此外,虽然使用iVar没有任何问题,但最好使用属性 -

@interface ViewController : UIViewController

@property (weak,nonatomic) IBOutlet UILabel *mylabel;
@property NSInteger sum;

@end

-(IBAction) buttonPressed:(id)sender
{
    UIButton *button=(UIButton *)sender;
    self.sum += [button.titleLabel.text intValue];
    self.myLabel.text = [NSString stringWithFormat:@"value: %d",self.sum];
}

答案 2 :(得分:1)

添加属性以存储current值。按下每个按钮时,将新值添加到该按钮并存储该结果(并将其显示在标签上)。

尝试使用NSInteger代替int