您好,登錄后才能下訂單哦!
iOS怎么實現小型計算器,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
首先呢,編輯這個計算器用到了兩種控件,Label和Button控件,Label控件用于顯示結果,而Button則是相應的鍵。我把計算器的鍵分為三種numButton,caculatorButton和clearButton。numButton主要有數字0到9還有小數點,caculatorButton有加號,減號,乘號,除號,等號。clearButton有清除鍵。所以總共有三種方法。首先先對控件進行連接,Label進行屬性連接,Button進行方法連接。
計算器的圖形如下:
具體的代碼如下;
HHLDelegate.h
#import <UIKit/UIKit.h> @class HHLViewController; @interface HHLAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) HHLViewController *viewController; @end
HHLDelegate.m
#import "HHLAppDelegate.h" #import "HHLViewController.h" @implementation HHLAppDelegate - (void)dealloc { [_window release]; [_viewController release]; [super dealloc]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. self.viewController = [[[HHLViewController alloc] initWithNibName:@"HHLViewController" bundle:nil] autorelease]; self.window.rootViewController = self.viewController; self.viewController.view.backgroundColor=[[UIColor alloc]initWithRed:0.76 green:0.82 blue:0.94 alpha:0.8]; [self.window makeKeyAndVisible]; return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end
HHLViewController.h
#import <UIKit/UIKit.h> @interface HHLViewController : UIViewController @property(retain,nonatomic)IBOutlet UILabel *label; @property(copy,nonatomic)NSString *title; @property(retain,nonatomic)NSMutableString *num1,*num2,*num3; - (IBAction)calculatorButton:(id)sender; - (IBAction)numButton:(id)sender; - (IBAction)clearButton:(id)sender; @end
HHLViewController.m
#import "HHLViewController.h" @interface HHLViewController () @end @implementation HHLViewController @synthesize label; @synthesize title; @synthesize num1,num2,num3; int m=0; int n=0; float y=0; float count=0; NSString *collect=@""; - (void)viewDidLoad { [super viewDidLoad]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)calculatorButton:(id)sender { n=0; m++; num3=num2; title=[sender titleForState:UIControlStateNormal]; if (m==1) { count=[num3 floatValue]; collect=title; } else{ if ([collect isEqualToString:@"+"]==1) { y=[num3 floatValue]; count=count+y; } if ([collect isEqualToString:@"-"]==1) { y=[num3 floatValue]; count=count-y; } if ([collect isEqualToString:@"*"]==1) { y=[num3 floatValue]; count=count*y; } if ([collect isEqualToString:@"/"]==1) { y=[num3 floatValue]; count=count/y; } label.text=[NSString stringWithFormat:@"%f",count]; collect=title; } } - (IBAction)numButton:(id)sender{ n++; title=[sender titleForState:UIControlStateNormal]; num1=[[NSMutableString alloc]initWithString:title]; if(n==1) { num2=num1; } else{ num2=[[NSMutableString alloc]initWithString:[num2 stringByAppendingString:num1]]; } label.text=num2; } - (IBAction)clearButton:(id)sender{ label.text=@""; num1=num3=num2=[[NSMutableString alloc]initWithString:@""]; collect=@""; count=0; m=0; n=0; } - (void)dealloc { [num1 release]; [num2 release]; [num3 release]; [title release]; [label release]; [super dealloc]; } @end
關于iOS怎么實現小型計算器問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。