前提・実現したいこと
今月からObjective-Cの勉強を独学で始め、練習としてBMIの計算アプリを作成しています。
体重・身長を入力し、計算ボタンを押すとBMIの計算結果が表示される仕組みになっています。
Xcodeを使用しており、見た目はstorybordで作成してます。
今回はその計算が終わった後に、リセットボタンを押すことで、起動時の画面状態に戻したいと思っています。
リセットボタンの作成まではしましたが、これ以降わからず質問させていただきました。
現在のコード
Objective
1// 2// ViewController.h 3// BMI 4// 5// Created by Admin on 2019/09/10. 6// Copyright © 2019年 Admin. All rights reserved. 7// 8 9#import <UIKit/UIKit.h> 10 11@interface ViewController : UIViewController { 12 IBOutlet UITextField *tfHeight;//身長 13 IBOutlet UITextField *tfWeight;//体重 14 IBOutlet UIButton *btnCalc;//BMI計算ボタン 15 IBOutlet UILabel *labelBmiTitle;//BMIの文字 16 IBOutlet UILabel *labelBmiValue;//BMIの計算結果の数値 17 IBOutlet UILabel *labelBmiText;//BMIの計算結果の体重区分 18 IBOutlet UIButton *trashBtn;//リセットボタン 19 20} 21 22 23@end 24 25
Objective
1 2// 3// ViewController.m 4// BMI 5// 6// Created by Admin on 2019/09/10. 7// Copyright © 2019年 Admin. All rights reserved. 8// 9 10#import "ViewController.h" 11#import "SVProgressHUD.h" 12 13@interface ViewController () 14 15@end 16 17@implementation ViewController 18 19- (void)viewDidLoad { 20 [super viewDidLoad]; 21 // Do any additional setup after loading the view, typically from a nib. 22 23 labelBmiTitle.hidden = YES; //hide 24 labelBmiValue.hidden = YES; 25 labelBmiText.hidden = YES; 26 trashBtn.hidden = YES; 27 28 tfHeight.placeholder = @"0"; 29 tfWeight.placeholder = @"0"; 30 31 tfHeight.clearButtonMode = UITextFieldViewModeAlways; 32 tfWeight.clearButtonMode = UITextFieldViewModeAlways; 33 34} 35 36- (BOOL)textFieldShouldReturn:(UITextField*)textField{ 37 38 [textField resignFirstResponder]; //method 39 return YES; 40 41} 42 43float progress; 44 45- (IBAction)calcBmi{ 46 47 float height = [tfHeight.text floatValue] / 100; 48 float weight = [tfWeight.text floatValue]; 49 float bmiValue = weight / (height*height); 50 51 labelBmiValue.text = [[NSString alloc] initWithFormat:@"%.2f" , bmiValue]; 52 53 if(bmiValue < 18.5){ 54 labelBmiText.text = @"痩せ型"; 55 } else if (bmiValue < 25){ 56 labelBmiText.text = @"標準体重"; 57 } else { 58 labelBmiText.text = @"肥満"; 59 } 60 61 progress = 0.1; 62 [SVProgressHUD showProgress:progress]; 63 // 0.3秒後にintevalを呼ぶ 64 [self performSelector:@selector(interval) withObject:nil afterDelay:0.3f]; 65 66 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 67 68 labelBmiTitle.hidden = NO; 69 labelBmiValue.hidden = NO; 70 labelBmiText.hidden = NO; 71 trashBtn.hidden = NO; 72 73 }); 74 75} 76 77- (void)interval { 78 progress += 0.0001f;// 数値を上げて 79 [SVProgressHUD showProgress:progress]; // HUD表示 80 81 if(progress < 1.0f){ 82 // 0.3秒後にintervelを呼ぶ 83 [self performSelector:@selector(interval) withObject:nil afterDelay:0.0002f]; 84 } else { 85 // HUDを消す 86 [SVProgressHUD dismiss]; 87 } 88} 89 90//- (IBAction)reload{ 91// 92// 93//} 94 95 96- (IBAction)reloadInputViews{ 97 98 99 progress = 0.1; 100 [SVProgressHUD showProgress:progress]; 101 // 0.3秒後にintevalを呼ぶ 102 [self performSelector:@selector(interval) withObject:nil afterDelay:0.3f]; 103 104 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 105 106 107 }); 108 109} 110 111@end 112 113
回答2件
あなたの回答
tips
プレビュー