IOS笔记 1

时间:2022-02-20 04:52:11

< ![CDATA[

笔记

UIWindows 与UIView的关系
iOS的坐标系统
视图层次结构
视图坐标(Frame和Bounds区别)
UIView的常用属性和方法
坐标系统的变换
UIView内容模式
UIView动画

UIKit是一个提供了在iOS上实现图形,事件驱动的框架

UIView是视图基类
UIViewController试图控制器的基类
UIResponder表示一个可以接受触摸屏上的触摸事件的对象
窗口是视图的一个子类
窗口的主要功能:一个提供一个区域来显示视图
二来将事件event分发给视图
一个应用通常只有一个窗口。但也有例外

窗口与视图
使用窗口与视图在屏幕上显示应用程序的内容,窗口本身不具有任何可见的内容。但它对于应用程序的视图提供了一个基本的容器。视图定义
你想要的一些内容,填充窗口的一部分,例如,图形,文本。等

什么是窗口
每个应用程序至少需要一个窗口,通常 窗口用UIWindow类的实例来表示。UIWindow继承自UIView

window对象有以下职责:
它包含了应用程序的可视化的内容
它为视图和其他应用程序对象在触摸事件中提供了关键的作用
它与试图控制器一起协作来呈现数据
大多数IOS应用程序在其生命周期内只有一个UIWindow。并且,在应用程序的生命周期中。窗口跨越整个设备的主屏幕和从应用程序的主nib文件加载(编程方式创建)。但是,如果应用程序支持的外部显示器使用的视频输出,它可以创建额外的窗口,以显示改外部显示器上的内容,所有其他的窗口通常由系统创建,并且通常在响应特定的事件的时候创建的。如电话呼入

UIScreen
UIScreen对象可以充当ios设备物理屏幕的替代者,[UIScreen mainScreen]

bounds 获取屏幕大小。

手机屏幕的几个概念
Screen Size 屏幕尺寸,指具体的屏幕物理长度,以屏幕对角线的长度作为标示
Resolution 屏幕分辨率 指屏幕上的总共物理像素点
Density密度 标示每英寸有多少个显示点
ASPECT ratio 屏幕宽高比例。如4:3
Device-independent pixe:dip 设备无关像素。。dip是虚拟的像素单位。
专门用来给程序定义UI用
色阶 。平常说的65536色,26万色

ipad mini 1024*768
ipad3~4 2048*1536
ipad~2 1024*768

iphone 5 640*1136
iphone4~4s 640*960

获取当前UIWindow和级别

通过UIApplication获取当前的keyWindow

keyWindow 是用来管理 键盘以及非触摸类的消息。
并且只有一个window是keyWindow

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
每个UIWindow对象配置windowLevel属性。大部分不应该去改变windowLevel
UIWindow 有3个级别。 通过windowLevel设置,优先级为
UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal

Demon

IOS笔记 1

IOS笔记 1

IOS笔记 1

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColor whiteColor];

    //self.window.windowLevel = UIWindowLevelNormal;

    [self.window makeKeyAndVisible];

    //定义一个button。类型是 根据rect 的比例来画出来的。
    UIButton *startButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
    //定位
    startButton.frame=CGRectMake(/-/, , , );
    //设置标题
    [startButton setTitle:@"警告" forState:UIControlStateNormal];
    //设置事件。添加事件是自身。 目标是alertUser方法。从touchup触发
    [startButton addTarget:self action:@selector(alertUser) forControlEvents:UIControlEventTouchUpInside];

    //加到view里面
    [self.window addSubview:startButton];

//    self.window.windowLevel = UIWindowLevelStatusBar;
//
    NSLog(@" window level %.2f",self.window.windowLevel);
//
//    NSLog(@" normal: %.2f",UIWindowLevelNormal);
//
//    NSLog(@" statusbar: %.2f", UIWindowLevelStatusBar);
//
//    NSLog(@" alert: %.2f", UIWindowLevelAlert);
//
    return YES;
}

-(void) alertUser
{
    UIAlertView *alertview=[[UIAlertView alloc]
                            initWithTitle:@"提示"
                            message:@"content"
                            delegate:nil
                            cancelButtonTitle:@"确定"
                            otherButtonTitles:nil];
    [alertview show]; //弹出去
}

]]>

原文:http://abujj.me/archives/370