Experimenting With Views
作者:PMST
文章:Views - Experimenting with Views
系列:The Swift Beginner
寫於:2015.04.26
回顧前文,詳細討論瞭如何使用a main storyboard和純代碼兩種情況分別創建window工程。大致把界面啓動、window創建、配置到界面呈現流程講述了一下。本章作爲The Window的補充,講述如何增添視圖控制器以及視圖操作。
使用storyboard情況
首先,打開Xcode,新建一個Single View Application項目,Xcode將自動生成一個Main.storyboard文件包含到項目中;接下來選中點擊查看storyboard內容,默認是一個場景(scene),包含一個視圖控制器(view controller)以及控制器所包含的main view;當應用啓動時,正如前文所講到的視圖控制器會成爲應用main window的rootViewController(假如不瞭解,請回顧上文),而視圖控制器的view則成爲主窗口的root view。
你可以嘗試從Object library
(即右下角第三個圖標)中拖拽一個視圖到main view中作爲其subView,當應用運行時,這個拖拽進來的視圖會自動實例化;當然你也可以選擇使用代碼來實例化一個視圖,然後將其加入到main view中。通常我們選擇在視圖控制器中的viewDidLoad
方法中添加上述代碼配置,以及使用self.view
來獲得視圖控制器的main view。就像下面的代碼:
override func viewDidLoad(){
super.viewDidLoad()
let mainView = self.view
let v = UIView(frame:CGRectMake(100,100,50,50))
v.backgroundColor = UIColor.redColor() //紅色的小正方形
mainview.addSubView(v) //添加到主視圖中
}
使用代碼創建
恩…我們需要一個空項目(前文已經講述,請點擊這裏),沒有.xib文件,沒有.storyboard文件,完全依靠代碼來實現前面demo的結果。對於新手來說,這無疑是比較興奮的!
正如The Window中最後給出的demo,由於沒有分配一個視圖控制器給window的rootViewController,在應用啓動時會產生警告。最簡單的解決方法便是在application:didFinishLauchingWithOptions:
方法中,創建一個視圖控制器並任命它爲window的rootViewController。代碼如下:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window.rootViewController = UIViewController() //就是這裏新建了一個視圖控制器
let mainView = self.window!.rootViewController!.view //得到主視圖
let v = UIView(frame:CGRectMake(100,100,50,50)) //自定義一個視圖
v.backgroundColor = UIColor.redColor() //設置顏色爲紅色
mainview.addSubView(v) //把自定義的紅色視圖添加到主視圖中
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible() //這一步很重要
return true
}