通过前面的介绍我们已经了解了iOS开发的基本方法和步骤实际上只要掌握了这些基本的方法和步骤我们就可以对iOS应用进行更多的控制。前面介绍的开发方式是使用xib或故事板文件设计iOS应用界面这也是iOS开发的最主要方式在某些极端的情况下我们也有可能不使用任何界面设计文件直接通过代码来开发UI界面。
9.5.1,不使用界面布局文件开发UI界面
如果打算使用纯代码来开发UI界面则不需要设计任何界面布局文件没有界面布局文件也就不再需要使用自定义的视图控制器。这样程序可以直接在应用程序委托对象的应用:didFinishLaunchingWithOptions:方法中创建UI窗口和应用程序界面,所有这些对象的创建都使用objective - c代码来完成。
实例×××面布局文件开发iOS应用
首先创建一个iOS的空应用程序应用。在创建iOS应用时选择“空程序”项即可如9.35图所示。
对于“空程序”类型的iOS应用Xcode只生成应用程序委托类不会生成任何界面设计文件也不会生成任何控制器类。
对于打算使用纯代码开发UI界面的开发方式来说我们的应用并不需要任何界面设计文件也不需要任何控制器。程序只要修改应用程序委托的应用:didFinishLaunchingWithOptions:方法并在该方法中创建UI控件然后利用这些UI控件搭建应用程序界面即可。下面是修改过的应用程序:didFinishLaunchingWithOptions:方法代码。
程序清单码/09/9.5 CodeUI/CodeUI/FKAppDelegate。m
//应用程序加载完成后将会自动回调该方法 ——(BOOL)应用程序:UIApplication(*)应用didFinishLaunchingWithOptions: launchOptions (NSDictionary *) {//创建ui窗口对象并将该ui窗口初始化为与屏幕相同大小 自我。窗口=[[ui窗口alloc] initWithFrame: [[UIScreen mainScreen]范围]];//设置ui窗口的背景色 self.window。写成backgroundColor=[用户界面颜色whiteColor];//创建一个ui对象 ui *控制器=[[ui alloc] init);//让该程序的窗口加载并显示viewController视图控制器关联的用户界面 self.window。rootViewController=控制器;//创建一个UIView对象 UIView * rootView=[[UIView alloc] initWithFrame :[[UIScreen mainScreen]范围]];//设置控制器显示rootView控件 控制器。视图=rootView;//创建一个圆角按钮 UIButton *按钮=[UIButton buttonWithType UIButtonTypeRoundedRect):;//设置按钮的大小 button.frame=CGRectMake (120、100、80、40);//为按钮设置文本 (按钮setTitle: @”确定“forState: UIControlStateNormal);//将按钮添加到rootView控件中 (rootView addSubview:按钮);//创建一个UILabel对象 自我。显示=[[UILabel alloc] initWithFrame :CGRectMake (60, 180, 30)];//将UILabel添加到rootView控件中 [rootView addSubview: self.show];//设置UILabel默认显示的文本 self.show。=@“初始文本”; self.show。写成backgroundColor=[用户界面颜色grayColor];//为圆角按钮的触碰事件绑定事件处理方法 【按钮addTarget:自我行动:@ selector (clickHandler:) forControlEvents UIControlEventTouchUpInside):;//将该ui窗口对象设为主窗口并显示出来 (自我。窗口makeKeyAndVisible]; 返回YES; }
上面的代码中首先创建了一个UI窗口作为应用程序的窗口接下来创建一个UIView作为UI窗口显示的根视图需要借助一个UI对象。
一旦程序中有了UIView作为容器接下来代码归纳起来相当于只有三行此处的三行是一种归纳说法并非实际只有三行。
创建UI控件比如创建UILabel丶创建UIButton等。
调用addSubView:方法将UI控件添加到其他容器中。
多次调用UI控件的setter方法来设置UI控件的外观丶行为。
上面代码中为按钮的触碰事件绑定了clickHandler:事件处理方法因此程序还需要在应用程序委托类中定义该方法。方法代码如下
程序清单码/09/9.5 CodeUI/CodeUI/FKAppDelegate。m
- - - - - - (void) clickHandler:发送者(id) { self.show。=@“开始学习iOS吧”; }
上面的代码只是简单地修改显示控件的文本内容这样即可实现当用户触碰按钮时动态改变显示控件的文本内容。
运行该程序单击程序中的按钮即可看到如9.36图所示的效果。