2012年12月04日

【iPhoneSDK】UIViewにaddSubviewしたUIViewクラスを簡単に特定して取得する

久しぶりにiPhoneアプリ開発コードのお話

あるUIViewControllerにUIImageViewとUIButtonとUITableViewをaddSubviewした時に
ボタン押下してイメージビューのイメージを変更してテーブルのサイズをイメージのサイズにあわせて調整して…
としたい場合、各Viewのインスタンスをメンバ変数もしくはプロパティとして保持するやり方を自分はやってきました。

そのたびにviewDidLoadのタイミングでインスタンス保持し、deallocなどのタイミングでリリースするっといった
初期化、開放処理を一個一個追加していたのですが、
なにげなーくブログ巡りしているときに気になるキーワードを発見しました。

そのキーワードは「viewWithTag」!

これはaddSubviewしたUIView継承クラスにtagを設定していると
呼び出し時に指定したタグ番号をもつUIViewクラスを取得することができるメソッドのようです。

UIImageView* imageView = [[UIImageView alloc] init];
[imageView setTag: 1];
[self.view addSubview: imageView];
[imageView release];

としていた場合

別のメソッドにて

UIImageView* imageView = [self.view viewWithTag: 1];

とすると取得することができるみたいですね〜
これなら各ローカル変数として管理することができますし
メモリリークのリスクも減るため有効活用すべきですね〜

ちなみにtagを設定していないUIViewはすべて0が設定されているらしく
viewWithTagにて0を指定するとNGのようです。



ラベル:SDK iPhone
posted by ヒイロ at 13:14| 福岡 ☁| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック