iphone 开发的基本入门知识

简介: iphone 开发的基本入门知识

大前提:建立一个Xcode -> 点击第二个 -> iOS -> Applaction -> Single View Application下的一个应用程序

一、main.m 里面的

1、main函数,程序唯一的入口
  2、UIApplicationMain函数函数作用  
      1)创建一个应用程序UIApplication对象,他是应用程序的象征,一个UIApplication对象就代表一个应用程序
      2)指定谁管理应用程序的生命周期
      3)建立一个事件循环来捕捉处理用户的行为
  3、永远不用尝试改变main.m中的内容

二、程序的生命周期

#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
#pragma mark 系统自动生成一个窗体
//1.当Applaction对象被实例化后,程序启动调用这个方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSLog(@"输出系统自己创建的window=%@",self.window);
#pragma mark  手动创建一个UIwindow对象
//1).创建一个window对象
//UIWindow *customWindow = [[UIWindow alloc]init];
//2).获取到UIScreen对象
UIScreen *screen = [UIScreen mainScreen];
//4).给window设置一个位置和尺寸
CGRect rect = [screen bounds]; //自动获得当前所选择的模拟器的窗体大小
UIWindow *customWindow = [[UIWindow alloc]initWithFrame:rect];
//5).给窗体设置背景颜色
customWindow.backgroundColor = [UIColor blueColor];
//6).给window设置一个根控制器,window和控制共同协作起来显示界面
customWindow.rootViewController = [[UIViewController alloc]init];
//7).将customwindow赋值给self.window
self.window = customWindow;
//8).把定义的window作为主window,并显示出阿莱
[customWindow makeKeyAndVisible];
#pragma mark  在桌面上放一些试图
//用试图做一个王字玩玩
//第1个竖
UIView *view = [[UIView alloc]init];
view.frame = CGRectMake(140, 50, 40, 380);
view.backgroundColor = [UIColor yellowColor];
[self.window addSubview:view];
//第1个横
UIView *view1 = [[UIView alloc]init];
view1.frame = CGRectMake(50, 50, 220, 40);
view1.backgroundColor = [UIColor greenColor];
[self.window addSubview:view1];
//第2个横
UIView *view2 = [[UIView alloc]init];
view2.frame = CGRectMake(50, 220, 220, 40);
view2.backgroundColor = [UIColor redColor];
[self.window addSubview:view2];
//第3个横
UIView *view3 = [[UIView alloc]init];
view3.frame = CGRectMake(40, 390, 240, 40);
view3.backgroundColor = [UIColor purpleColor];
[self.window addSubview:view3];
NSLog(@"程序启动");
return YES;
}
//3.当应用程序将要进入非活跃状态执行,比如来电话了、锁屏等。
 - (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"程序进不活跃状态");
}
//4.一般程序进入后台,就会进入非活跃状态,但如果你的程序支持后台,程序在后台也保持活跃状态
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"程序进入后台");
}
//5.程序进入前台
  - (void)applicationWillEnterForeground:(UIApplication *)application {
  NSLog(@"程序进入前台");
}
//2.当应用程序进入活跃状态执行
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"程序变成活跃状态");
 }
//6.当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"程序退出");
}
@end

三、UIWindow

1、在iOS中,使用窗口与试图在屏幕上显示应用程序的内容,窗口本身不具有任何可见的内容,但他对于应用程序的试图提供一个基本的容器,试图定义你想要的一些内容,例如:图像、文本、表格等等
2、程序中每个时刻只能有一个UIWindow是keyWindow,通常应用程序只有一个window
3、iOS程序启动完毕后,会首先创建一个UIWindow
4、一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow,也就是说没有UIWindow,就看不见任何UI界面
5、常用方法
    1)让当前UIWindow变成keyWindow(主窗口)
      - (void)makeKeyWindow;
    2)让主窗口显示出来
      - (void)makeKeyAndVisible; 
6、练习
   自己创建一个window作为主窗口

四、程序的完整启动过程

1、main函数
2、UIApplicationMain
   1)创建UIApplication对象
   2)创建UIApplication的delegate对象
3、delegate对象开始处理(监听)系统事件
  1)程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
  2)在application:didFinishLaunchingWithOptions:中创建UIWindow
  3)创建和设置UIWindow的rootViewController
  4)显示窗口

五、手机屏幕的几个概念

1、UIScreen

可以充当iOS物理屏幕的替代者,
[UIScreen mainScreen] bounds] 能够获取屏幕大小

2、屏幕尺寸

指具体的屏幕物理长度,以屏幕的对角线的长度作为试试

3、像素

图像由一个个点组成,这个点叫做像素

4、屏幕分辨率

指屏幕屏幕上总共的物理像素点

5、屏幕尺寸

设备      屏幕尺寸  分辨率(pt) reader 分辨率(px) 
  3GS       3.5      320*480   @1x     320*480
  4/4S      3.5      320*480   @2x     640*960
  5/5S/5C   4.0      320*568   @2x     750*134
  6         4.7      375*667   @2x     750*1334
  6P        5.5      414*736   @3x     1242*2208
  pt: 用于计算屏幕上的坐标

六、iOS坐标系统

1、iPhone的试图坐标系是以左上角为原点
2、每一个view的frame所使用的坐标系以它的父试图的左上角为原点
3、试图结构和相关函数
   //试图显示的位置
   CGPoint point = CGPointMake(x,y) 
   //试图显示的大小
   CGSize size = CGSizeMake(width,height)
   //试图显示的位置和大小
   CGRect rect = CGRectMake(x,y,width,height);
4、frame/Bounds/center
   frame: 包含试图的位置和大小
   Bounds:包含试图的大小,位置默认是(0,0)
   center:包含试图中心点所在的位置


目录
相关文章
「镁客早报」iPhone或将在今年采用三摄;传Facebook致力于开发语音助力服务与亚马逊、苹果竞争
亚马逊向美国Alexa设备推免费音乐服务;视频会议软件开发商Zoom纳斯达克上市。
236 0
|
Web App开发 缓存 开发工具
|
存储 iOS开发 计算机视觉
|
Web App开发 前端开发 JavaScript