iOS怎么实现小型计算器

发布时间:2022-01-27 15:21:50 作者:柒染
来源:亿速云 阅读:118

iOS怎么实现小型计算器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

首先呢,编辑这个计算器用到了两种控件,Label和Button控件,Label控件用于显示结果,而Button则是相应的键。我把计算器的键分为三种numButton,caculatorButton和clearButton。numButton主要有数字0到9还有小数点,caculatorButton有加号,减号,乘号,除号,等号。clearButton有清除键。所以总共有三种方法。首先先对控件进行连接,Label进行属性连接,Button进行方法连接。

计算器的图形如下:

iOS怎么实现小型计算器

iOS怎么实现小型计算器

具体的代码如下;

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怎么实现小型计算器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. 利用Olami SDK 实现语音控制计算器(iOS)
  2. javascript怎么实现小型区块链功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios

上一篇:Centos8怎么缩减XFS分区格式的根目录

下一篇:jstat命令怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》