-
Notifications
You must be signed in to change notification settings - Fork 0
3.1 UIView
View Programming Guide for iOS | iOS Viewプログラミン グガイド
UIView クラスは大きく分けて以下の役割を持っています。
- 独自のコンテンツ描画
- 各 View を管理するコンテナ
- アニメーション
- イベント処理
ここでは View の管理方法とカスタム UIView の作成を説明します。
ある viewA に重ねられた viewB は ViewA の SubView となります。viewB は viewA の subViews に管理されます。
上図のように、view に任意の UIView コンポーネントを複数個配置してください。IBOutlet を使用せずにプログラムから特定の UIView コンポーネントを消してください。
- for の高速列挙を使ってください。
- [obj isKindOfClass:[UIView class]] を使うことで obj が UIView クラスなのかを判定できます。
UIView インスタンスは NSinteger の tag というプロパティを持っています。ここに数値をセットすることで、View を高速に検索することが出来ます。
UIView *subView = [view viewWithTag:8];
このコードを実行することで view とその subView を深さ優先検索し該当 view があればそこで検索を終了します。
また、タグを使うことによって、ボタンのイベント処理を一つのメソッドにまとめることが出来ます。
このような場合、sender.tag で処理を振り分けることで、ボタンごとにメソッドを宣言実装する必要がなくなります。
今までに出てきた addSubView/removeFromSuperView の他にも view を insert するメソッドがあります。
- insertSubview:atIndex: subViews の index を指定
- insertSubview:aboveSubview: 指定の view の上に insert
- insertSubview:belowSubview: 指定の view の下に insert
- exchangeSubviewAtIndex:withSubviewAtIndex: subView の入れ替え、remove してから addSubView するよりも高速
iOS では左上を座標の起点とします。
frame
View の stretch 機能を使うことで画像の引き延ばし可能領域を設定することが出来ます。
Interface Builder 上で設定する場合は Stretching の部分の数値を変更することで設定可能です。
- x, y : 起点から **引き延ばし不可能 ** な領域の割合を設定します
- Width, Height : x, y で決めた点から 引き延ばし可能 な領域を設定します。
画像リンクcircle
- 導入
- Objective C の基礎
- メモリ管理
- UIViewController1 - UIViewController のカスタマイズ
- UIViewController2 - ModalViewController
- UIViewController3 - ライフサイクル
- UIKit 1 - container, rotate-
- UINavigationController
- UITabController
- Custom Container View Controller
- Supporting Multiple Interface Orientations
- UIKit 2- UIView -
- UIView
- UIView のカスタマイズ
- UIView Animation
- UIKit 3 - table view -
- UITableView について
- UITableViewとNavigationController
- custom UITableViewCell の作成
- 4.4 UITableViewのその他のオプション、カスタマイズ
- UIKit 4 - images -
- UIImage (CoreGraphics)
- UIImageView
- Accets Library
- CoreImage
- UIKit 4 - text -
- UILabel
- UITextView
- KeybordNotification
- 非同期処理系
- NSURLConnection (json シリアライザ)
- Blocks
- GCD
- ローカルキャッシュ
- UserDefaults
- FileManager
- CoreData
- SQLite
- Instruments
- leak
- time profiler
- その他
- 単体テスト (GHUnit)
- 結合テスト (KIF)
- cocoaPods でライブラリ管理