这篇主要是示范如使用完全空白的 Empty Application 的样板,添加一个 storyboard,并设定对应的 UIViewController,制作出如同 Single View Application 样板的效果。
建立 Empty Application
在开启专案时选择由空白样板 Empty Application 开始,在 Device Family 项目中,这边所要设定的是此项目是针对哪一个产品所开发,目前的现况来说,可以分成 iPhone 或是 iPad 两种,在此范例中我们选择通用 Universal(此设定也可以从项目设定画面中做更改)。
使用 Empty Application 来开始新项目 |
在建立完成后,就会得到一个非常干净的空白项目,若是直接用仿真器执行,则会出现白色画面,等等!不是说是空专案吗?画面应该是什么都没有的黑色才对,察看仅有的 class 档 AppDelegate.m,你会发现原来在 application:didFinishLaunchingWithOptions: 这个启动应用程序时会触发的方法函式里,已经自动帮你建立好了一个新的 UIWindow,并且将它的大小设定成与 UIScreen 相同,背景颜色为白色,现在我们将其批注掉,重新执行仿真器,果不其然得到的是一个黑色的空画面。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
建立一个新的 Storyboard
在空项目里必须要加入 Storyboard 才能进行用户接口 UI 的设计,对项目新增档案,在User Interface 分类中可以找到 Storyboard,由于 Storyboard 并不能选择 Universal 通用,所以我们暂时在此选择 iPhone。
替项目新增一个 Storyboard |
在建立好 Storyboard 之后,回到项目设定画面(左边的导览列中点选整个项目),在 TARGETS 处的 Summary 中可以找到 iPhone / iPod Deployment Info 项目,在此项目里的的 Main Storyboard 选择刚刚建立的 Storyboard 档案,这样就完成项目与 Storyboard 的连结,如果你是使用 iPhone / iPod 这类的装置来执行此项目,它就会使用这边设定的 Storyboard 来制作 UI,同样地,iPad Deployment Info 项目下的 Main Storyboard,就是专门针对使用 iPad 来执行此项目时所要使用的 Storyboard。
替项目与 Storyboard 做连结 |
建立对应的 UIViewController
有了 Storyboard 还不够,我们还必须建立 UIViewController 才能对画面上的组件进行控制,首先替项目新增一个 UIViewController subclass,你可以在新增档案的 Cocoa Touch 分类中找到它,在此我们维持最基本的设定(不勾选任何 Check Box)。
替项目新增一个 UIViewController |
接着来到 Storyboard 里,从它的组件库中同样拉出一个 View Controller 对象到画面上,你会发现画面上的 UIViewController 左边会多一个箭头,这表示他是这个 Storyboard 中主要的 UIViewController,也就是使用者会看到的第一个画面(你可以多拉几个 UIViewController 出来试试看,你同一个时间只能设定一个主要的 UIViewController)。
从组件库中拉出一个 View Controller 对象 |
接着我们要将 View Controller 与 UIViewController subclass 做连结,点选画面上的 View Controller,并在 Identity 属性窗口中找到 Custom Class,将这里设定成刚刚我们建立的 UIViewController subclass。现在,你可以在画面上随便拉几个组件出来,并用仿真器执行试试看,恭喜你已经完成 Single View 的制作了。
设定 View Controller 与 UIViewController subclass 的连结 |
虽然说在项目下不同分辨率的装置可以选用不同的 Storyboard 来进行设计,但是你也可以使用单一的 Storyboard 通吃到底,以上述范例来说,在 TARGETS 处选择 Universal 通用,遇到使用 iPad 仿真器执行时的情况,画面会自动放大符合 iPad 仿真器的大小,若是在 TARGETS 处选择 iPhone,而非通用,那么在用 iPad 仿真器执行时,画面并不会出现放大的效果。
如果,你决定两种不同分辨率的装置要共享同一个 Storyboard,你可以参考
不同分辨率的装置共享同一个 Storyboard 的方法与排版问题ㄧ文,解决排版与工作区域的问题。
http://iteches.com/archives/42481