Iphone 每点击一次按钮,将文本框中的数字减少一个
我对Objective-C比较陌生,所以这可能非常简单:我的应用程序中有一个显示弹药数量的文本框,因此每次用户点击开火按钮,文本框中的数字都会下降一(12>11>10等)到0。我曾尝试使用for和if语句,但它们不起作用(我可能使用了不正确的语法)。这是我现在正在使用的,但显然我需要Iphone 每点击一次按钮,将文本框中的数字减少一个,iphone,objective-c,ios,xcode,ipad,Iphone,Objective C,Ios,Xcode,Ipad,我对Objective-C比较陌生,所以这可能非常简单:我的应用程序中有一个显示弹药数量的文本框,因此每次用户点击开火按钮,文本框中的数字都会下降一(12>11>10等)到0。我曾尝试使用for和if语句,但它们不起作用(我可能使用了不正确的语法)。这是我现在正在使用的,但显然我需要 - (IBAction)fire { [ammoField setText:@"11"]; } - (IBAction)reload { [ammoField setText: @"12"]
- (IBAction)fire {
[ammoField setText:@"11"];
}
- (IBAction)reload {
[ammoField setText: @"12"];
}
试试这个:-
int i;
-(void)ViewDidLoad
{
i=12;
}
- (IBAction)fire
{
[ammoField setText:[NSString stringWithFormat:@"%d",i]];
i--;
}
- (IBAction)reload {
i = 12;
[ammoField setText: [NSString stringWithFormat:@"%d", i]];
}
希望它对你有用。谢谢:)设置实例整数
int x;
设置它的值
x = 12;
不要改变方法
- (IBAction)fire {
[ammoField setText:[NSString stringWithFormat:@"%i",x]];
x--;
}
最简单的方法是将文本转换为一个数字,减量并重置文本,即用以下代码替换fire方法中的代码:
NSInteger ammoCount = [ammoField.text integerValue];
ammoCount--;
ammoField.text = [NSString stringWithFormat:@"%d", ammoCount];
但不要这样做,这会让史蒂夫·乔布斯的宝宝哭
更好的方法是向跟踪项目符号数量的UIInteger
类型的类添加一个新变量,即:
// in interface
NSInteger _ammoCount;
...
// in implementation
- (IBAction)fire {
_ammoCount--;
if (_ammoCount <= 0) {
_ammoCount = 0;
fireButton.enabled = NO;
}
[ammoField setText: [NSString stringWithFormat:@"%d", _ammoCount]];
}
- (IBAction)reload {
_ammoCount = 12;
[ammoField setText: [NSString stringWithFormat:@"%d", _ammoCount]];
fireButton.enabled = YES;
}
//在接口中
NSInteger_弹药计数;
...
//实施中
-(i)火灾{
_弹药计数--;
如果(_ammoCount使用int变量设置viewdidload中的count值
火法将计数减少1
和重载方法将值返回到12
相应地记录或使用值int
count;在您的.h
文件中,在viewDidLoad
count=something中,进行计数——在您的操作中,使用stringWithFormat
以字符串形式显示计数值。我尝试了这个方法,它将整数降为-1,然后是-2,以此类推。我正在做的是:在.h文件中:code
.m文件中的NSInteger\u ammoncount;code
:code
-(iAction)fire:(id)发送方{\u ammoncount-->[ammondisplay setText:[NSString stringWithFormat:@“%d”,_ammoncount]];]code
为了澄清,文本框最初是12,我希望它在第一次点击时变为11,然后在第二次点击时变为10,以此类推,然后在0处停止。好的,我已经更改了代码,所以如果ammoCount达到0,则“开火”按钮将被禁用。我尝试了,第一次点击时它变为0。我如何让它先变为11?将ammoCount设置为等于12(我在哪里声明)?您是否在viewDidLoad
方法中添加了[自重新加载]
?