我是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个按钮
当用户点击其中一个按钮时,该值将与之前的值相加,并且该值将显示在标签中
谁知道怎么做?感谢
答案 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
。