02.The Window 补充——experimenting

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 windowrootViewController(假如不了解,请回顾上文),而视图控制器的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,由于没有分配一个视图控制器给windowrootViewController,在应用启动时会产生警告。最简单的解决方法便是在application:didFinishLauchingWithOptions:方法中,创建一个视图控制器并任命它为windowrootViewController。代码如下:

  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
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值