OCUI界面设计:程序基本结构
来源:互联网 发布:老年人意外伤害数据 编辑:程序博客网 时间:2024/06/05 17:04
UIWindow 窗口
简介
UIWindow作为程序的窗口,容纳所有的界面元素。
程序中一般只有一个window,默认由系统初始化。
一个工程需要一个UIWindow窗口对象,并且同一时间仅能有一个UIWindow被激活。
在iOS里UIWindow是UIView的子类,
initWithFrame:
是标准的视图初始化方法,接受一个CGRect结构体类型来制定视图的位置和大小。
初始化
- (instancetype)initWithFrame:(CGRect)frame;
手动创建UIWindow步骤:
steps 1:在工程目录中选中info.plist配置文件;
steps 2:找到Main storyboard file base name字段,将其值”Main”删除。
steps 3:在Appdelegate.m文件中,找到协议方法didFinishLaunchingWithOptions
(视图加载完成),在方法内部初始化UIWindow并且将其呈现出来,window属性已由系统在Appdelegate.h文件中声明。
steps 4:运行工程,程序崩溃,控制台输出信息如下:
根据崩溃信息,我们可以知道,window需要一个 root view controller(根视图控制器)来作为应用程序界面元素的一个载体,而根视图控制器只要是继承于 UIViewController 的对象即可,因此,我们可以直接引用系统为我们创建的 ViewController 这个类,该类继承于 UIViewController。将其导入到Appdelegate.m文件中,初始化并将其置为window的根视图控制器即可,如下所示:
程序结构
Main函数:
- 创建自动释放池@autoreleasepool,跳转到UIApplicationMain函数。
UIApplicationMain函数:
- 处理运行时所需的实际工作。
- 需要传入的参数包含应用程序委托类名。
UIApplicationDelegate:
- 负责处理关键的系统消息。
AppDelegate:
- 实现了UIApplicationDelegate协议方法,作为程序的主入口。
// 程序加载完成- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 输出当前方法名称,_cmd表示当前方法的选择器,SEL类型。 NSLog(@"%@", NSStringFromSelector(_cmd));#pragma mark - 手动创建UIWindow // 获取屏幕大小初始化UIWindow _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 设置UIWindow背景颜色 _window.backgroundColor = [UIColor whiteColor]; // UIWindow层级 _window.windowLevel = UIWindowLevelNormal; // 将UIWindow作为程序的key并且显示出来 [_window makeKeyAndVisible]; // 设置UIWindow根视图控制器 ViewController *rootVc = [[ViewController alloc] init]; _window.rootViewController = rootVc; [rootVc release]; return YES;}// 程序即将失活- (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"%@", NSStringFromSelector(_cmd));}// 程序进入后台- (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"%@", NSStringFromSelector(_cmd));}// 程序即将进入前台- (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"%@", NSStringFromSelector(_cmd));}// 程序处于活跃状态- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"%@", NSStringFromSelector(_cmd));}// 程序即将退出:异常退出- (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"%@", NSStringFromSelector(_cmd));}
2 0
- OCUI界面设计:程序基本结构
- OCUI界面设计:导航控制器
- OCUI界面设计:状态栏
- OCUI界面设计:标签控制器
- OCUI界面设计:弹出框
- OCUI界面设计:UISearchController 搜索
- OCUI界面设计:触摸与手势
- OCUI界面设计:网页视图 UIWebView
- OCUI界面设计:UIPickerView 拾取视图
- OCUI界面设计:视图与视图控制器
- OCUI界面设计:基础控件(一)
- OCUI界面设计:基础控件(二)
- OCUI界面设计:表格视图-初级使用
- OCUI界面设计:表格视图-高级使用
- OCUI界面设计:UIView动画事务与UIImageView动画
- OCUI界面设计:滚动视图与分页控件初探
- OCUI界面设计:滚动视图与表格视图嵌套布局
- D3D程序基本结构
- Java之网络编程
- burp suite使用(一) --- 抓包,截包,改包
- 1.Linux下libevent和memcached安装
- Leetcode# 101 Symmetric Tree
- hdu 2102
- OCUI界面设计:程序基本结构
- 黑马程序员——ios学习笔记 OC self&异常
- 利用外网主机穿透本地网络防火墙
- 桶排序
- Windows Sockets 网络编程——第四章 网络应用程序工作机制
- Hibernate工作原理及为什么要用?
- Codeforces Round #313 Gerald is into Art (枚举)
- B1010一元多项式求导 (25)
- JQuery获取复选框checkbox的值