簡體   English   中英

從UIbutton讀取數字

[英]reading numbers from UIbutton

我是Objective-c和Xcode的新手。 我正在嘗試從某些按鈕獲取大量數字,但我所得到的只是一個數字。 我正在為此使用按鈕標簽。

例如:如果我想將兩個數字2 + 3相加,則效果很好。 但是當我想添加230 + 32時,它不是。

介面

- (IBAction)getnumber:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *Result;
int number;

實施部分:

-(IBAction)getnumber:(id)sender {
    number = [sender tag]; 
    Result.text = [NSString stringWithFormat:@"%i", number]; 
}  

如果我點擊了多個按鈕,是否可以從按鈕的標簽中獲取大量信息?

先感謝您 。

您的問題來自於如何定義變量。 如果我了解您的設置正確,您會看到類似計算器的界面,並且只將按鈕的標簽設置為1、2、3,...等單個數字以指示要顯示的下一個數字?

在這種情況下,您的行number = [sender tag]將為該按鈕的編號設置一個全局變量(還記得您的CS教授告訴您從不使用全局變量的原因嗎?這是原因!)因為當您在該按鈕的標簽上覆蓋了number時,轉到在下一行中設置結果字符串, number僅保存最后按下的按鈕的值。 相反,您應該這樣做。

@interface MyClass : UIViewController
@property (nonatomic, strong) IBOutlet UITextView * resultLabel;
- (IBAction)getNumber:(id)sender;
@end

- (IBAction)getNumber:(id)sender;
{
   self.resultLabel.text = [NSString stringWithFormat:@"%@%d", self.resultLabel.text, [sender tag]];
}

這樣,每次調用getNumber: ,它將獲取標簽當前顯示的任何文本,並附加此按鈕的值。 附帶說明一下,習慣上以小寫字母開頭的Objective-C屬性名稱。

我認為你必須附加一個變量類型number 它應該是 -

- (IBAction)getnumber:(id)sender 
{
    NSInteger number = [sender tag]; 
    Result.text      = [NSString stringWithFormat:@"%i", number]; 
}  

一世

您需要更改邏輯。

數字= 0;

如果單擊帶有數字的按鈕

數字=數字* 10 + button.tag;

其他

如果按下操作(不是=)

存儲號碼和運算符

如果=操作員被點擊

對存儲的號碼和最近輸入的號碼執行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM