主なGUIコンポーネントの利用 (1/4)
作成:2011-03-22 08:02
更新:2011-03-22 08:16
更新:2011-03-22 08:16
■UISwitchによるON/OFFスイッチ
まずは、「UISwitch」についてです。これは、ON/OFFスイッチのGUIです。パソコンでいる「チェックボックス」に相当するものといっていいでしょう。これは、Interface Builderでは「Switch」というコンポーネントとして用意されています。コンポーネントの主な機能などは、InspectorウインドウのAttributes Inspector(一番左側のアイコン)から設定することができます。
On/OFFの状態は、「State」属性で設定することができます。これは、ポップアップメニューから「On」「Off」を選択できます。UISwitch自体は、このStateの操作さえ出来れば、基本的な利用は可能になります。表示されるサイズは「ON」「OFF」などの表示は固定と考えてください(サイズは調整は可能ですが、基本的にはそのままの大きさで使います)。
では、これを実際に利用する簡単なサンプルを挙げておきましょう。スイッチをタッチして動かすと、現在の状態が表示されるというシンプルなものです。
1. ◯◯ViewController.h(ここではMyIAppViewController.h)に、UILabel *label1とUISwitch * switch1というプロパティと、switch1Action:というメソッドを用意しておきます。
2. Interface Builderで、LabelとSwitchを配置し、それぞれを2つのプロパティに、またSwitchのイベント処理をswitch1Action:にそれぞれ関連付けます。
3. ◯◯ViewController.m(ここではMyIAppViewController.m)に、メソッドの実装を行います。
各ソースコードは下にまとめてありますので、これを参考に記述をしてください。エミュレータで実行し、スイッチをタッチして動かしてみましょう。タッチしてON/OFFするごとに、上のLabelの表示テキストが「Switch:YES」「Swith: NO」と切り替わります。
UISwitchは、メソッドと接続する場合、標準で「Value Changed」という種類のイベントにメソッドが接続されます。これは、値が変化したときに発生するイベントで、ユーザーがタッチして操作するなどしてON/OFF状態が変化すると実行されます。実行されるメソッドでは、以下のような形でON/OFF状態を調べています。
On/OFFの状態は、「State」属性で設定することができます。これは、ポップアップメニューから「On」「Off」を選択できます。UISwitch自体は、このStateの操作さえ出来れば、基本的な利用は可能になります。表示されるサイズは「ON」「OFF」などの表示は固定と考えてください(サイズは調整は可能ですが、基本的にはそのままの大きさで使います)。
では、これを実際に利用する簡単なサンプルを挙げておきましょう。スイッチをタッチして動かすと、現在の状態が表示されるというシンプルなものです。
1. ◯◯ViewController.h(ここではMyIAppViewController.h)に、UILabel *label1とUISwitch * switch1というプロパティと、switch1Action:というメソッドを用意しておきます。
2. Interface Builderで、LabelとSwitchを配置し、それぞれを2つのプロパティに、またSwitchのイベント処理をswitch1Action:にそれぞれ関連付けます。
3. ◯◯ViewController.m(ここではMyIAppViewController.m)に、メソッドの実装を行います。
各ソースコードは下にまとめてありますので、これを参考に記述をしてください。エミュレータで実行し、スイッチをタッチして動かしてみましょう。タッチしてON/OFFするごとに、上のLabelの表示テキストが「Switch:YES」「Swith: NO」と切り替わります。
UISwitchは、メソッドと接続する場合、標準で「Value Changed」という種類のイベントにメソッドが接続されます。これは、値が変化したときに発生するイベントで、ユーザーがタッチして操作するなどしてON/OFF状態が変化すると実行されます。実行されるメソッドでは、以下のような形でON/OFF状態を調べています。
BOOL 変数 = [《UISwitch*》 isOn];このisOnメソッドで、スイッチがONならばYES、OFFならばNOが取得できます。また、逆に値を変更するためのメソッドとしてsetOn:というものも用意されています。
[《UISwitch*》 setOn:《BOOL》];これも引数でYESを指定すればONに、NOならばOFFに設定変更されます。非常に簡単なメソッドですので、改めて説明の必要もないでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※MyIAppViewController.h #import <UIKit/UIKit.h> @interface MyIAppViewController : UIViewController { UILabel * label1; UISwitch * switch1; } @property (nonatomic, retain) IBOutlet UILabel *label1; @property (nonatomic, retain) IBOutlet UISwitch * switch1; - (IBAction)switch1Action:(id)sender; @end ※MyIAppViewController.m #import "MyIAppViewController.h" @implementation MyIAppViewController @dynamic label1; @dynamic switch1; @dynamic slider1; @dynamic segment1; - (IBAction)switch1Action:(id)sender { BOOL swth = [switch1 isOn]; NSString* swstr = swth ? @"YES" : @"NO"; NSString* msg = [NSString stringWithFormat:@"Switch: %@",swstr]; [label1 setText:msg]; } ……中略…… @end
※関連コンテンツ
「初心者のためのiphone/ipadプログラミング入門」に戻る