iOSアプリ開発で【知ったこと】をつらつら追記していく 〜その3〜

【UITabBarControllerに格納されているTabBar名取得方法】

self.tabBarController.viewControllers
→ 出力内容
"<FirstViewController: アドレス番地>",
"<SecondViewController: アドレス番地>",
"<UIViewController: アドレス番地>”


【UIパーツ作成 Stroryboard VS コード】

コード上でViewControllerやパーツを作る機会は?
→ Stroryboard上に大量のUIViewを使用する場合、
  一時的に使用するものなどは画面上で作成する場合が多い。
→ UIパーツを出したり消したりしょっちゅうしたい場合は、コード上でやるほうが良い

 

【ViewControllerとUIView】

UIView:UIViewControllerに含まれる複数のパーツと思えばいい。
     目に見えるもの。
UIViewController:画面に一つ
         遷移を制御するやつ。目に見えないもの。
         初期の状態でUIVIewを一つ持っている。(UIViewController.viewプロパティに、UIViewを持っている)

 

【UIViewの作り方】

2種類ある。
・CGRectの変数を定義していくパターン。
・CGrectMakeを使用するパターン。


【UIButtonについて】

◯ボタンが押下された時に、特定メソッドを呼び出す設定
[btn addTarget:self action:@selector(呼び出し関数名:) forControlEvents:UIControlStateNormal];

tappedには:が必須だよ。

◯ボタンの作成例
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(10, 10, 100, 30);
[btn setTitle:@"押してね" forState:UIControlStateNormal];
[btn setTitle:@"ぽち" forState:UIControlStateHighlighted];
[btn setTitle:@"押せません" forState:UIControlStateDisabled];
// ボタンがタッチダウンされた時にhogeメソッドを呼び出す
[btn addTarget:self action:@selector(hoge:)
forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn];

※UIButtonにはいろんなイメージのものがある。
http://iphone-tora.sakura.ne.jp/uibutton.html

◯ボタンにtagをつける。
クリックされた時に呼ばれるメソッドが、複数ボタンで同じだった場合、
ボタン作成時にtag設定をしておき、クリックされた時に呼ばれるメソッド内で判定に使用する。

作成例
UIButton *tmp = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[tmp setTitle:[NSString stringWithFormat:@"%i",i] forState:UIControlStateNormal];
[tmp addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
tmp.frame = CGRectMake(110, 20+i*35, 100, 30);
tmp.tag = i;

[深さ優先検索]
一つのボタンおうかメソッドに対して、
タグでのif文で、振り分けることができる。


【SubViewへのView追加方法】

・addSubView
・removeFromSuperView
・insertSubview:atIndex: subViews の index を指定
・insertSubview:aboveSubview: 指定の view の上に insert
・insertSubview:belowSubview: 指定の view の下に insert
・exchangeSubviewAtIndex:withSubviewAtIndex: subView の入れ替え、remove してから addSubView するよりも高速 ★おすすめ

 

【UIImageとUIIMageView違い。親子関係を書く】

UIImageView:親。
        画像が設定されたUIImageを設定する。
UIImage:子。
     画像を設定する。


【UIViewパーツの配置の仕方】

HTMLの上から配置するという話ではなく。パワポkeynoteのような配置方法

 

【クラス種別判定 / 親Viewから対象viewを除去】

if ([view isKindOfClass:[UIView class]] ) { ← クラス種別判定
[view removeFromSuperview];     ← 親Viewから対象Viewを除去
}