zoukankan      html  css  js  c++  java
  • UI note1

    Xcode创建的UI工程,有一对AppDelegate.h和AppDelegate.m是一个代理的实现。

    .m⾥里的很多⽅方法,都是通过实现<UIApplicationDelegate>代理而

    生成的⽅法。

    .h⾥里只有⼀个属性

    @property (strong, nonatomic) UIWindow *window;//这个属性是ARC下

    的声明,用了strong,strong相当于retain

    @property (retain, nonatomic) UIWindow *window;// 这个属性是MRC

    下的声明,用了retain。

    2、UIWindow(形象化如画板)

    window

    相当于⼀个画板,要想展现自⼰想要的图像或者图形,需要把画的东西画在window这个画板上。

    window继承于UIView,在UI中,所有的能看得到的东西,都是继承于UIView。就是MVC中的V 就是视图

    在iOS中,通常用UIWindow来表⽰示窗口,每个app都要把要展现的东西都写在UIWindow上。

    通常,(iPhone)⼀个App只创建一个UIWindow对象。iPad有分屏功能

    创建UIWindow对象

    解释:

    1、initWithFrame:[[UIScreen mainScreen] bounds],初始化window,使这个window跟屏幕⼀样⼤⼩。

    2、backgroundColor,设置背景色

    3、makeKeyAndVisible,把window设置成可显⽰的。

    4、UIView(视图)

    任何在屏幕上显示的图形,都是矩形,只是都做了处理。因为,所有在iOS⾥能看到的,都是UIView或UIView的子类。

    // 创建window对象,初始化时设置window的位置和⼤⼩与屏幕相同。

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

    // 给window设置背景颜色

    self.window.backgroundColor = [UIColor whiteColor];

    // 把window设置为可显示

    [self.window makeKeyAndVisible];

    创建UIView

    1、CGRectMake,是⼀个返回值为结构体的CGRect,有4个参数的⽅法,用来确定我们所创建的视图的位置和⼤⼩。

    2、CGRect是一个结构体,有两个成员变量: CGPoint   CGSize

    这两个成员变量都是结构体,每个成员变量⾥都分别有两个成员变量,都是CGFloat类型的。 x   y        width height

    3、CGPoint的两个成员变量是用来确定我们创建视图的位置。(x, y)

    4、CGSize的两个成员变量是⽤来确定我们的创建的视图的⼤⼩,一个为宽,一个为高。width   height

    5、起始位置:从屏幕的最左上⾓为(0,0)点,往下为正Y轴,右为正X轴。

    6、addSubview  把我们创建的视图,添加到window中,这样,才能使我们的视图可见。

    frame

    frame其实也是一个结构体,是结构体CGRect的一个变量

    // 创建View

    // 1.创建对象

    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 122, 100, 100)];

    // 2.设置view属性(颜⾊就是属性之⼀)

    // 设置背景颜⾊

    view.backgroundColor = [UIColor yellowColor];

    // 3.添加视图

    // view的父视图是window

    // window 的子视图是view

    // 添加视图时,系统对视图进⾏retain。我们把这个retain叫做持有。(window持有)

    [self.window addSubview:view];

    // 4.释放

    [view1 release];

    view1 = nil;

    // frame ,其实就是⼀个结构体,有两个成员变量,均为结构体,两个成员变量里分别有两个成员变量, 都是CGFloatt类型的。

    // 根据⽗视图来的。

    UIView *view4 = [[UIView alloc]init];

    view4.frame = CGRectMake(220, 20, 100, 50);

    view4.backgroundColor = [UIColor greenColor];

    [self.window addSubview:view4];

    [view4 release];

    view4 = nil;

    bounds

    在每添加一个view的时候,每个view分别以自⼰的起点为(0,0)点,创建一个坐标系

    这个bounds就是一个结构体,⽤来确定view的新坐标。

    frame与bounds的区别:

    frame与bounds都是结构体,都是⽤来确定位置和⼤小的;

    frame的位置是从屏幕的最左上⾓开始算的;

    bounds是从新添加的view的最左上角的点开始算。

  • 相关阅读:
    软件架构——”淘宝网”质量属性研究
    漫谈架构——读后感
    问题账户需求分析
    关于《软件需求分析》需要掌握哪些必要的内容的总结与思考------读后感
    人月神话阅读笔记4
    **系统项目目标文档
    人月神话阅读笔记3
    人月神话阅读笔记2
    人月神话阅读笔记1
    问题账户需求分析
  • 原文地址:https://www.cnblogs.com/xlsn0w/p/4972641.html
Copyright © 2011-2022 走看看