UI基础知识


iOS开发面向的是点坐标系,不是像素



Info.plist常见的设置



pch文件:

pch 头文件的内容能被项目中的其他所有源文件共享和访问
一般在 pch 文件中定义一些全局的宏


pch文件的创建:




pch 文件中添加下列预处理指令,然后在项目中使用 Log(…) 来输出日志信息,就可以在发布应用的时候,一次性将 NSLog 语句移除(在调试模式下,才有定义 DEBUG

#ifdef DEBUG  (调试模式)

#define Log(...)  NSLog(__VA_ARGS__)  (“...”表示自定义)

#else

#define Log(...) /**/

#endif



程序的运行过程

iOS程序的完整生命周期:当用户点击图标的时候,会通过main函数开始程序(既项目中的main.m文件中的UIApplicationMain方法),这时会创建一个UIApplication的实例(单例),UIApplication象征着整个程序,然后会创建一个UIApplication的代理对象delegate,在开启一个消息循环来监听系统事件,如果监听到某一个动作就会给代理发送消息。



UIApplication

1.简介

1>整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式

2> 通过[UIApplication sharedApplication]访问这个单例对象

2.常见用法

1>设置图标右上角的红色提示数字

app.applicationIconBadgeNumber = 10;


2>设置状态栏的样式

app.statusBarStyle = UIStatusBarStyleBlackOpaque;

3>控制状态栏的显示和隐藏

app.statusBarHidden = YES;

4>显示状态栏上面的圈圈

app.networkActivityIndicatorVisible = YES;


5>打开外部资源

打开网页
[app openURL:[NSURL URLWithString:@“http://www.baidu.com”]];

打电话
[app openURL:[NSURL URLWithString:@“tel://10086”]];

发短信
[app openURL:[NSURL URLWithString:@“sms://10086”]];

6> 代理属性(当应用程序发生了一些系统级别的事件,就会通知代理,交给代理去处理)

@property(nonatomic,assign) id delegate;


UIApplicationDelegate的代理方法

// 程序加载完毕(启动完毕)就会调用一次

• (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions

// 应用程序失去焦点的时候调用(一个app如果失去焦点,就不能跟用户进行交互)

• (void)applicationWillResignActive:(UIApplication *)application

// 程序进入后台就会调用

• (void)applicationDidEnterBackground:(UIApplication *)application

// 程序即将进入前台的时候调用

• (void)applicationWillEnterForeground:(UIApplication *)application

// 应用程序获得焦点的时候调用(一个app只有获得焦点之后才能跟用户进行交互)

• (void)applicationDidBecomeActive:(UIApplication *)application

// 程序即将被关闭的时候可能会被调用

• (void)applicationWillTerminate:(UIApplication *)application

// 程序接收到内存警告都会调用

• (void)applicationDidReceiveMemoryWarning:(UIApplication *)application



/*************************************************************************************************************************/

UIViewControlleriOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的,UIViewController管理UIView的生命周期及资源的加载与释放。

UIViewUIWindow共同展示了应用程序的用户界面。可以将UIView理解成画布,UIWindow理解成画框。这两个类的继承关系是这样的:NSObject — UIResponder — UIView — UIWindow

iOS中,所有显示在界面上的对象都是从UIResponder直接或间接继承的,UIViewUIWindow也不例外。

UIWindow

虽然UIWindow继承自UIView,但是在模型中,它是一个首席ViewUIWindow的主要作用是提供一个区域来显示UIView,然后将事件分发给UIView。一般情况下,应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。


1. 创建一个全屏的window

// [[UIScreen mainScreen] bounds]]获取主屏幕的大小

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

2. window设置背景色:

self.window.backgroundColor = [UIColor whiteColor];

3. 指定根控制器

MyFirstViewController *myVC = [[MyFirstViewController alloc] init];

self.window.rootViewController = myVC;


4. window设置为KeyWindow并显示:

[self.window makeKeyAndVisible];

我们看看这个每个程序都有的方法吧:

[self.window makeKeyAndVisible];

由于iPhone是单窗口程序,所以也就只有这么一个Window对象,而且是UIWindow,不是NSWindow。而根据文档上所说:

这个是便捷方法,去使被使用对象的主窗口显示到屏幕的最前端。你也可以使用hiddenUIView方法隐藏这个窗口



iOS7中,状态栏默认情况下归控制器管理,比如状态栏的样式、状态栏的是否可见

改变状态栏的颜色为白色样式

- (UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleLightContent; 

}


// 隐藏状态栏

- (BOOL)prefersStatusBarHidden 

{

return YES;

}







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值