
Xcode的左边底部是检查器(审批)区域;右侧下方是这些库的区域。
Xcode常用系统和快捷键
可以在项目导航中见到整个项目包括的文档,打开Supporting Files文件夹可以看见一个main.m文档ios软件开发教程,上面有你们十分熟悉的main函数。C和Objective-C(以前简称OC)流程的入口都是main函数,iOS应用的入口也许也有main函数,只不过main函数风骚的打了辣椒,仅仅去读取了一个叫做UIApplicationMain的变量。UIApplicationMain函数会创建一个UIApplication的对象。每个iOS应用都有且仅有一个UIApplication对象,该对象的效果是维护一个消息循环,应用程序的这些风波并执行相应地回调方法(callback method)。回调是一种常见的编程模式,当我们明白一件事情发生的时候要做什么,所以并不知道这件大事什么时候会发生都会用到回调的编程模式,注册一系列的下跌方法,当事件发生时通过委托的对象调用其他方式。
#import <UIKit/UIKit.h># import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}说明:UIApplicationMain方法的四个参数,其中前两个是main方法的命令行参数,第三个参数表是UIApplication类或其基类的昵称,UIApplication对象会启动一个事件的循环这些风波,然后通过委托的方法处理各种风波,而第四个参数正好是一个应用程序委托类的昵称。
AppDelegate类的源码如下所示:
头文件
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end源文件
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 应用程序加载完成
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// 应用即将置于后台
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 应用已经置于后台
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// 应用即将置于前台
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// 应用已经进入前台
}
- (void)applicationWillTerminate:(UIApplication *)application {
// 应用即将终止
}
@end也就是说,我们整个应用程序的执行程序和生命周期应该是上面这组图所示的现象。
应用程序加载到前台:

应用程序加载到后台:


应用程序从前台进入后台:

应用程序从后台进入前台:

屏幕左上角是坐标原点,纵向是X轴的正向,横向是Y轴的正向,状态栏从Y=到Y=20处。

屏幕尺寸如下表所示:
硬件 屏幕尺寸 分辨率 坐标点
iPhone 3和3s
3.5英寸
320*480
320*480
iPhone 4和4s(支持Retina)
3.5英寸
640*960

320*480
iPhone 5和5s(支持Retina)
4英寸
640*1136
320*568
iPhone 6
4.7英寸
750*1334
375*667
iPhone 6 Plus
5.5英寸
1080*1920
414*736
iPad 1和2(不支持Retina)
768*1024

768*1024
iPad 3和4(支持Retina)
1536*2048
768*1024
iPad Air
1536*2048
768*1024
iPad Mini(不支持Retina)
768*1024
768*1024
iPad Mini2(支持Retina)
1536*2048
768*1024
UIWindow相当于一个画框。它还能承载这些的字段对象(包含视图的基类对象),但往往状况下我们不会将所有的字段对象直接放到应用的窗口上,而是由一个或多个字段控制器对象(稍后介绍)来管理各种内容。


我们可以在刚才的AppDelegate.m文档中加入上面的源码。
// 应用程序加载完成时回调此方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建窗口对象并设置其大小为屏幕大小
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 设置窗口的背景色
self.window.backgroundColor = [UIColor whiteColor];
// 设置窗口对象为主窗口并且可见
[self.window makeKeyAndVisible];
return YES;
}UIWindow是UIView的基类。UIView定义了一个矩形区域还有操作这个圆形区域中内容的编程接口,除此之外UIView还要处理运行时区域中内容的交互行为(绘图、和风波处理)。从里面的图中我们也可以看出,我们要使用的控件都是UIView的子类型。视图会按层级结构排列,坐落视图层级结构顶端的就是应用窗体。
任何使用都有且仅有一个UIWindow对象,UIWindow对象如同一个容器,负责包括使用中的一切字段。应用需要在启动时创建并增设UIWindow对象ios软件开发教程,然后为其添加其它的字段,好像下面的源码呈现的这样。
加入窗口的字段会变成该窗口的子字段。子字段也可以有自己的子字段从而构成一个以UIWindow作为根的字段层级结构(枝干结构)。

要想使用iOS编程的API,可以下载一个叫做Dash的工具来查阅文件,特别的快捷好用,而且可以看见文件还可以查阅到Google和StackOverflow上的相关难题,你肯定会讨厌上这个工具的。

UILabel的常见属性:
- text属性:标签上的插图
- textColor属性:插图的色彩
- textAlignment属性:插图的对齐方法
- font属性:笔画
- adjustsFontSizeToFitWidth属性:调整文字形状适应标签长度
- numberOfLines属性:表明的行数,增设成表示不受限行数
接下来我们为刚才创建的应用程序添加上面的源码来放在一个标签。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor orangeColor];
[self.window makeKeyAndVisible];
// 创建标签对象
UILabel *myLabel = [[UILabel alloc] init];
// 设置标签的尺寸和坐标
myLabel.frame = CGRectMake(50, 300, 275, 40);
// 设置标签的字体
myLabel.font = [UIFont systemFontOfSize:36];
// 设置标签的颜色
myLabel.textColor = [UIColor blueColor];
// 设置标签的对齐方式
myLabel.textAlignment = NSTextAlignmentCenter;
// 设置标签上的文字
myLabel.text = @"Hello, world!";
// 将标签添加到窗口上
[self.window addSubview:myLabel];
return YES;
}应用在模拟器(iPhone 6)上运行效果如下所示:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-118667-1.html
恶狗理解草狗意
这都够进监狱了