Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

3.1 UIView

tamotamago edited this page Apr 19, 2013 · 23 revisions

View Programming Guide for iOS | iOS Viewプログラミン グガイド

UIView Class Reference

UIView クラスは大きく分けて以下の役割を持っています。

  • 独自のコンテンツ描画
  • 各 View を管理するコンテナ
  • アニメーション
  • イベント処理

ここでは View の管理方法とカスタム UIView の作成を説明します。

subViews

ある viewA に重ねられた viewB は ViewA の SubView となります。viewB は viewA の subViews に管理されます。

subViews

問題

上図のように、view に任意の UIView コンポーネントを複数個配置してください。IBOutlet を使用せずにプログラムから特定の UIView コンポーネントを消してください。

  • for の高速列挙を使ってください。
  • [obj isKindOfClass:[UIView class]] を使うことで obj が UIView クラスなのかを判定できます。

tag

UIView インスタンスは NSinteger の tag というプロパティを持っています。ここに数値をセットすることで、View を高速に検索することが出来ます。

UIView *subView = [view viewWithTag:8];

このコードを実行することで view とその subView を深さ優先検索し該当 view があればそこで検索を終了します。

また、タグを使うことによって、ボタンのイベント処理を一つのメソッドにまとめることが出来ます。

tag

このような場合、sender.tag で処理を振り分けることで、ボタンごとにメソッドを宣言実装する必要がなくなります。

view の追加/削除

今までに出てきた addSubView/removeFromSuperView の他にも view を insert するメソッドがあります。

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

view の座標系

iOS では左上を座標の起点とします。 origin

frame

frame-bounce-center

引き延ばし可能な view

View の stretch 機能を使うことで画像の引き延ばし可能領域を設定することが出来ます。

Interface Builder 上で設定する場合は Stretching の部分の数値を変更することで設定可能です。

  • x, y : 起点から **引き延ばし不可能 ** な領域の割合を設定します
  • Width, Height : x, y で決めた点から 引き延ばし可能 な領域を設定します。

stretch

はじめに

  1. iOSについて

  2. Xcode最初のステッフ

  3. 導入

  4. Objective C の基礎

  5. メモリ管理

  6. 1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)

  7. 1.3 UIViewController1 UIViewController のカスタマイズ(storyboard)

  8. UIViewController2 - ModalViewController

  9. UIViewController2 - ModalViewController(storyboard)

  10. UIViewController3 - ライフサイクル

  11. HomeWork 1 Objective C の基本文法

  12. HomeWork 2 UIViewControllerとModalViewController

  13. HomeWork 3 UIViewController + Animation

  14. UIKit 1 - container, rotate-

  15. UINavigationController

  16. UITabController

  17. Custom Container View Controller

  18. Supporting Multiple Interface Orientations

  19. HomeWork 1 - タブバーからモーダルビューを表示する

  20. HomeWork 2 - NavigationController

  21. HomeWork 2.3 デバイスことに回転対応

  22. UIKit 2- UIView -

  23. UIView

  24. UIView のカスタマイズ

  25. UIView Animation

  26. HomeWork 1 - UIScrollView

  27. UIKit 3 - table view -

  28. UITableView について

  29. UITableViewとNavigationController

  30. custom UITableViewCell の作成

  31. UITableViewのその他のオプション、カスタマイズ

  32. HomeWork 1 - Dynamic height with a custom uitableviewcell

  33. UIKit 4 - image and text -

  34. UIImagePickerController

  35. Assets Library

  36. UITextFiled, UITextView

  37. KeyboardNotification

  38. Homework 1 - フォトの複数枚選択

  39. ネットワーク処理

  40. NSURLConnection

  41. JSONのシリアライズとデシリアライズ

  42. UIWebView

  43. ローカルキャッシュと通知

  44. NSUserDefaults, Settings Bundle

  45. NSFileManager

  46. Key Value Observing

  47. NSNotification、NSNotificationCenter を用いた通知

  48. UILocalNotification

  49. Blocks, GCD

  50. Blocks

  51. GCD

  52. 【演習】GCD,-Blocksを用いたHTTPリクエストマネージャの作成

  53. 設計とデザインパターン

  54. クラス設計 1

  55. クラス設計 2

  56. [クラス設計演習] (https://github.com/mixi-inc/iOSTraining/wiki/9.3-%E3%82%AF%E3%83%A9%E3%82%B9%E8%A8%AD%E8%A8%88%E6%BC%94%E7%BF%92)

  57. 開発ツール

  58. Instruments, デバッガ

  59. CocoaPods

  60. テスト

  61. iOS開発におけるテスト

  62. GHUnit

  63. Kiwi

  64. KIF

  65. In-App Purchase

  66. In-App Purchase

  67. 付録

  68. Tips of Xcode

  69. Auto Layout 入門

  70. Auto Layout ドリル

Edit sidebar

Clone this wiki locally