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
}