Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

OOPの概念で作りあげられているiOSフレームワークの理解には時間がかかります。

クラス概念の理解をするのにいい教材なのかもしれませんが、まだまだ読めません。

じゃあ昨日の続き。

viewDidLoad()メソッド

override func viewDidLoad() {
  super.viewDidLoad()
  blueViewController = 
  storyboard?.instantiateViewControllerWithIdentifier("Blue")
  as? BlueViewController
  blueViewController.view.frame = view.frame
  switchViewController(from: nil, to: blueViewController)
}

注意:キャスティングの扱いが変わっているので、オリジナルの「as」から「as?」に変更しています。

今日のコードはblueViewConrroller.view.frame = view.frameである。

BlueViewControllerクラスをインスタンス化しても、それが持っているViewは表示されません。それはサイズが指定されていないからです。ということでSwitichingViewControllerが持っているViewのサイズをそのままBlueViewControllerのViewのサイズに指定します。

blueViewController.view.frame = view.frame

しかし、素人の私にはこれを次のように書くのがいいような気もします...

blueViewController.view.frame = self.view.frame

駄目ですか?

今日の話題はこれじゃないんです。

iOSフレームワークの基本もおさえていないといけないでしょう。私はいまだにCGRectを知りませんでした(^_^;)

CGRectの勉強をします。frameはCGRectで宣言されているので調べてみると構造体でした。

CGrect構造体は四角形の位置と大きさを以下のように保持しています。

struct CGRect { var origin: CGPoint var size: CGSize }
struct CGPoint { var x: CGFloat var y: CGFloat }
struct CGSize { var width: CGFloat var height: CGFloat }

f:id:yataiblue:20150126142413j:plain

これはきっと普通のプログラマーにとって当たり前のことで私のように知らない人間がいるとは思わないでしょう。

正本The Swift Programming LanguageのStructureの説明例文として出てきてたんですけどね(^_^;)

今日はここまで。

その後iOS座標システムの勉強はすすみました。

yataiblue.hatenablog.com