iPhoneアプリ:電卓をつくる その3

このエントリーを含むはてなブックマークはてなブックマーク - iPhoneアプリ:電卓をつくる その3

さて、前回
iPhoneアプリ:電卓をつくる その2」はiPhoneプログラミングの概要だけで終わってしまったので、今日は、実際にプログラムを書いていきます。

Calc1ViewController.h

@interface Calc1ViewController : UIViewController {
	IBOutlet UILabel *label;
	int count;
}
-(IBAction) plusButtonPressed;
@end

もういちど、前回のプログラムイメージを再掲します。ここで、今回のカウンタプログラムの場合、この図の各部分が何に相当するのかを考えてみましょう。

calc5

まず、ユーザイベントは「+ボタンの押下」で、画面更新は、「UILabelの更新」ですね。そこで、ボタンが押されたときに呼ばれる自作関数plusButtonPressedにはIBActionを付けて定義しています。また、画面更新の対象であるUILabelにはIBOutletをつけて宣言しています。これは、前回の説明通りです。あとはボタンが押下されたときに呼ばれる関数の中身を実装するだけです。

Calc1ViewController.m

- (void)viewDidLoad {
	[super viewDidLoad];
	count = 0;
}

-(IBAction) plusButtonPressed
{
	count++;
	label.text = [NSString stringWithFormat:@"%d", count];
}

まずは、何回「+ボタン」が押されたのかを保持する変数countをヘッダファイルに宣言しておき、viewDidLoad関数の中で初期化します。基本的にはviewDidLoad関数のなかで変数を初期化するようにしておけば大丈夫です。

最後に、ボタンが押下されたときに呼ばれる関数plusButtonPressedの中身を見ていきます。まず、countをインクリメントしておき、その値をLabelとして表示するためstringWithFormatという関数を用いて、int型をNSString型に変換しています。その結果をlabel.textに代入することで、画面上の表示が更新されます。

さて、もう一度インタフェースビルダーに戻って、イベントと自作関数、画面更新を関係付けます。具体的には、上図の青矢印と赤矢印を引く感じですかね〜。まずは、IB(Interface Builder)のCacl1ViewController.xibウインドウからFile’s Ownerを選択した状態にします。

calc7

この状態で、インスペクタをみるとこのような状態になっているかと思います。

calc10

この状態でlabelの右側にある○からViewウインドウのUILabelに向けてドラッグします。同様に、plusButtonPressedの右側の○から+ボタンに向けてドラッグし、touch up insideを選択します。うまくいけば、このようになるかと思います。

calc8

あとはXcodeに戻ってコンパイル&実行すればうまくカウンタが動作するはずです。

ここまでのプロジェクトファイルをここに置いておきます。
Calc1.zip

さてさて、宿題です。(ゼミ資料を兼ねてるもので・・・笑)これまでのカウンタプログラムにクリアボタンをつけて、クリアボタンが押されたときにはカウントを0に戻すようにしてみてください。

こんな感じです。

クリアボタンをつけたバージョンのプロジェクトファイルをここに置いておきます。
Calc2.zip

3 Responses to “iPhoneアプリ:電卓をつくる その3”

  1. [...] 前回のiPhoneアプリ:電卓をつくる その3までは、ボタンをタップしてカウントアップするカウンタを作成してきました。今回は、このカウンタを電卓へと改良していきましょう。設計する電卓のインタフェースはこんな感じにしてみました。なんとなく電卓ぽいでしょ(笑) [...]

  2. hideman より:

    ありがとうー!すっごいためになりました。

Leave a Reply

You must be logged in to post a comment.