UI第一课

来源:互联网 发布:linux find命令详解 编辑:程序博客网 时间:2024/06/06 00:02

主要内容:UIView及其子类、UILable

一、UI概述

       UI(User  Interface):用户界面,用户能看到的各式各样的页面元素

       iOS  APP:各种各样的UI控件 + 业务逻辑和算法

       UI外观改革:

              iOS7.0以前,以虚拟化为主,注重立体、阴影的搭配

              iOS7.0以后,以线条为主,倾向于扁平化

二、UIWindow

       window是窗口,每个APP都需要借助window呈现给用户,

       iOS中,使用UIWindow类表示窗口(注意:通常一个应用程序只创建一个UIWindow对象,并且,我们不会对window做过多的操作

       window的创建:

              在创建window的时候,需要指定window的大小,通常window的大小(frame)与屏幕(UIScreen)的大小一致

              代码示例:

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

      window的主要作用是呈现给用户看,那么如果不添加任何东西,怎么给用户看?所以

三、UIView

       View(视图):代表屏幕上的一个矩形区域,iOS中用UIView表示视图

              注意:1、不同的控件代表不同种类的View

                         2、iOS中所能看到的内容都是View或者其子类

       创建View步骤:

              1、开辟控件并初始化视图(初始化时给出视图位置和大小)

              2、对视图做一些操作(比如北京颜色。。。)

              3、将视图添加到window上进行显示

              4、释放视图对象

       代码示例:

              / / 创建视图对象并给出位置大小

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

              / / 设置背景颜色为红色

              view1.backgroundColor = [UIColor  redColor];

              / / 将视图view1添加到window窗体上

              [self.window  addSubView :view1] ;

              / / 释放视图对象

              [view1 release] ;

       注意:因为我们一般不对window做过多的操作,所以我们一般都是首先申请一个与屏幕大小相同的view,将所以的控件都添加到view上,在view上进行操作

       frame:

              是view的重要属性,是我们做视图布局的关键,它决定了视图的位置和大小

              frame是一个结构体,包含两个部分内容:origin和size

              origin也是一个结构体,包含两个部分内容:x 和 y

              size也是一个结构体,包含两个部分内容:width 和 height

              CGRectMake()函数能帮助我们快速的构造一个CGRect变量

       center:

              center(中心点)同样也是view的重要属性,center包含两个部分:x 和 y

       frame和center的关系:

              center.x = frame.origin.x + frame.size.width/2

              center.y = frame.origin.y + frame.size.height/2

       bounds:

              bounds(边界)也是view的重要属性,用于定义自己的边界也是一个CGRect结构体变量

              注意:

                     1、当一个view设置bound时,会把自己当成一个容器,定义自己的边界大小及左上角的初始坐标

                     2、当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角

      frame、center、bounds的关系







       添加视图:

              系统默认添加视图是后面的视图会把已添加的视图盖在下面,系统提供了插入视图的方法

方法名描述示例insertSubView:atIndex在指定的Index处插入子视图[superview  insertSubView:grayView  atIndex:3];insertSubView:aboveSubView:在指定的视图上面添加子视图[superview  insertSubView:grayView  aboveSubView:redView];inserSubView:belowSubView:在指定的视图下面添加子视图[superview  insertSubView:grayView  belowSubView:redView];

       及管理视图层次的方法:

方法名描述示例bringSubViewToFront:将指定的视图移到最前面[superview  bringSubViewToFront:redView];sendSubViewToBack:将指定的视图移到最后面[superview  sendSubViewToBack:garyView];exchangeSubViewAtIndex: withSubViewAtIndex:交换两个指定索引位置的视图[superview  exchangeSubViewAtIndex:2 withSubViewAtIndex:3];removeFromSuperview把receiver从父视图上移除[redView  removeFromSuperview];

       视图的重要属性:

属性名描述示例hidden控制视图的显隐redView.hedden = YES;/ / 隐藏redView

redView.hedden = NO; / / 显示redView
alpha控制视图的不透明度(子视图也一起透明),取值范围0 - 1redView.alpha = o.8; / / 将透明度设置为0.8superview获取本视图的父视图UIView  *superview = [redView  superView];subviews获取本视图的所有子视图NSArray  *subview = [redView  subViews];tag给视图添加标记,被加完标记的视图可以使用viewWithTag:方法取出redView.tag = 100;
UIView  *view = [superview  viewWithTag:100];

       如何确定视图在屏幕的位置呢?

       iOS平面坐标系:

             左上角为坐标系的原点

             水平向右:为x的正方向,屏幕从最左到最右可划分为320等份

             水平向下:为y的正方向,屏幕从嘴上到最下课划分为568等份(5s的屏幕)

             注意:坐标系不是以像素为划分依据,而是以点为划分依据

四、UILable

       UILable(标签):是显示文本的控件(在APP中,UILable是出现频率最高的控件)

       UILable是UIView的子类,作为子类,一般是为了扩充父类的的功能,所有UILable扩展的文字显示的功能

       UILable是能显示文字的视图

       创建UILable的步骤:

              1、开辟空间并初始化(如果本类有自己的方法,用自己的,否则用父类的)

              2、设置文本控制相关的属性

              3、添加到父视图上,用以显示

              4、释放

             代码示例:

                   UILable  *lable = [[UILable  alloc]  initWithFrame:CGRectMake:(100, 100, 100, 100)];

                   lable.backgroundColor = [UIColor  redColor];

                   lable.text = @" 用户名 " ;

                   [self.window  addSubView:able];

                   [able  release];

        控制文本显示的方法:

属性名描述示例text要显示的文本内容lable.text = @" 用户名 " ;textColor文本内容的颜色lable.textColor = [UIColor  redColor];textAlignment文本的对齐方式(水平方向)lable.textAlignment = NSTextAlignmentLeft; / / 左对齐

NSTextAlignmentCenter / / 居中对齐

NSTextAlignmentRight / / 右对齐 
font文本字体lable.font = [UIFont  fontWithName:@" Helvetica-Bold " size:20] ; / / 黑体加粗,20号字numberOfLines行数lable.numberOfLines = 3; / / 显示3行,注意:Lable的高度要能容纳3行,
如果3行不能显示全部信息,以省略号代替
lineBreakMode断行模式lable.lineBreakMode = NSLineBreakByWordWrapping; / / 以单词为单位换行shadowColor阴影颜色lable.shadowColor = [UIColor redColor]; / / 红色阴影shadowOffset阴影大小lable.shadowOffset = CGSizeMake(2, 1);
/ / 阴影向x正方向偏移2,向y正方向偏移1


0 0
原创粉丝点击