《30天精通iPhone手机编程》-Day7-长度单位转换器

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event是捕获手指的触摸事件方法,触摸开始时调用。

    UITouch *touch = [[event allTouches] anyObject];touch定义所有事件中的任何触摸对象。

        NSMutableSet *mutableTouches=[touches mutableCopy];这是另一种获取touches参数事件的方法

        通过[allTouches count]来判断是多触点还是单触点

        UITouch *touch1 =[[allTouches allObjects]objectAtIndex:0]当objectAtIndex为0时,获取第一个触摸点。

    UITouch *touch2 =[[allTouches allObjects]objectAtIndex:1]当objectAtIndex为1时,获取第二个触摸点。
    [touch tapCount]获得当前touch的判断是否为多点触摸,当[touch tapCount]=1时,判断为不是多点触摸。

    这一章是要做一个单位转换器,主要用到了对键盘的处理,单击键盘上的return进行转换
//捕获手指的触摸事件方法,触摸开始时调用touchesBegan
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
	//touch定义所有事件中的任何触摸对象
	UITouch *touch = [[event allTouches] anyObject];
	//当手指在屏幕的触摸次数>=1时
	if (touch.tapCount >= 1) {
		//隐藏文本框输入的键盘
		[chi resignFirstResponder];		
		[meter resignFirstResponder];		
		[feet resignFirstResponder];
	}
}
//当用户触摸文本框时,键盘打开,当单击Return返回键时,键盘自动隐藏,返回单位转换计算结果
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    //当文本框输入完成返回时
	if (textField == chi) {
		//隐藏键盘
		[chi resignFirstResponder];
		//建立浮点变量,计算后转换为米
		double m = [chi.text doubleValue]/3.0003;
		//计算后转换为英尺
		double f = m * 3.2808;		
		meter.text = [[NSString alloc]initWithFormat:@"%.4f", m];		
		feet.text = [[NSString alloc]initWithFormat:@"%.4f", f];
	}
	if (textField == meter) {
		[meter resignFirstResponder];		
		double c = [meter.text doubleValue] *3.0003;		
		double f = [meter.text doubleValue] *3.2808;		
		chi.text = [[NSString alloc]initWithFormat:@"%.4f", c];		
		feet.text = [[NSString alloc]initWithFormat:@"%.4f", f];
	}
	if (textField == feet) {
		[feet resignFirstResponder];		
		double m = [feet.text doubleValue]/3.2808;		
		double c = m *3.0003;		
		meter.text = [[NSString alloc]initWithFormat:@"%.4f", m];		
		chi.text = [[NSString alloc]initWithFormat:@"%.4f", c];
	}
	return YES;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值