2011年4月23日土曜日

[iOS] カスタムUIViewControllerで画面の中を制御する (2)

前回の続き、カスタムUIViewControllerで画面の中を制御する (1)

【開発環境】 Xcode4, iOS4.3

スイッチを操作すると、コンソールにログを出力するところまで作成しました。
今回は、スイッチを操作した際に、ラベルの文字列を変えてみましょう。


■ラベルをプログラムから操作できるように、変数に関連づけます。
1.[〜ViewController.h]を開きます。赤枠のようにプログラムを追加します。
インスタンス変数「_label」、プロパティの宣言「label」を追加します。
※プロパティにIBOutletという識別子は、プログラム的に特別な意味はなく、Interface Builderからプロパティを利用する際に指定します。


2.[〜ViewController.m]を開きます。@implementation 〜ViewControllerの次ぐらいに、赤枠のようにプログラムを追加します。
プロパティをインスタンス変数と関連づけて実装します。
プロパティ「label」を通じて、インスタンス変数「_label」を操作することができ、クラス内部をカプセル化(隠蔽化)することができます。


3.[〜ViewController.xib]を開きます。作成したプロパティとラベル(UILabel)を関連づけます。
①[File's Owner]を選択します。
②[Connections Inspecter]をクリックします。[〜ViewControllerクラスで利用できるアウトレット(プロパティ)とアクション(メソッド)一覧が表示されます。
③[label]アウトレットをラベルまでドラッグします。


関連づけれると、このように変わりますが。


これでプログラムからラベルを操作できるようになります。

■スイッチを操作した時に、ラベルの文字列を変えてみる
1.前回作成したメソッドの中に次ぎのようにプログラムを追加します。


・メソッドの引数[sender]は、イベント発生元のスイッチであるので、変数型をキャストして、UISwitch(スイッチ)の型に変換します。
・スイッチの状態を知るには、UISwitchのプロパティ[on]を利用します。
・ラベルの文字列を変えるには、UILableのプロパティ[text]を利用します。


実行して、スイッチを操作してみると、ありゃ・・・ラベルの文字が小さすぎて見えない。

[〜ViewController.xib]を開き、ラベルを選択して、四隅の●をドラッグしてサイズを広げます。

これでバッチリラベルが表示されました。


0 件のコメント:

コメントを投稿