UIView 视图类,视图都是UIView或者UIView子类

UIWindow 窗口类,用于展示视图,视图一定要添加window才能显示

注意:一般来说,一个应用只有一个window

创建一个UIWindow对象

UIScreen 屏幕类 [UIScreen mainScreen]主屏幕

[[UIScreen mainScreen]bounds]获得主屏幕大小

如:

1.创建工程

2.把ARC改为MRC

3.window的属性由string改为retain

4.重写dealloc方法,对_window进行释放

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
self.window.backgroundColor=[UIColor whiteColor];//设置window的背景颜色
[self.window makeKeyAndVisible]//将self.window设置为主窗口,并可见

UIColor 颜色类

创建视图

UIView *view=[[UIView alloc]initWithFrame:CGRectMake(50,50,200,200)];//创建一个视图view,坐标50,50 宽和高都是200
view.backgroundColor=[UIColor redColor];//设置视图背景色为red

iOS中能够看见的视图都是矩形的.

frame用来表示view的位置和大小

位置:

CGPoint  结构体,用于存放一个点的数据类型
CGPoint point=CGPointMake(20,30); //位置坐标是20,30

//打印

NSLog(@"%lf",point.x);
NSLog(@"%lf",point.y);
NSLog(@"%@",NSStringFromCGpoint(point));//用对象打印

CGSize 结构体,用于存放视图宽和高

大小:

CGSize size=CGSizeMake(100,200);     //视图的宽是100,高是200
NSLog(@"%lf",size.width);
NSLog(@"%lf",size.height);
NSLog(@"%@",NSStringFromCGSize(size));

//CGRect 结构体,用于存放一个矩形的数据,包括位置和宽高(包含CGpoint和CGSize)

CGRect rect=CGRectMake(20,30,100,100);   //x,y,width,height
NSLog(@"%lf",rect.origin.x);
NSLog(@"%lf",rect.origin.y);
NSLog(@"%lf",rect.size.width);
NSLog(@"%lf",rect.size.height);
NSLog(@"%@",NSStringFromCGRect(rect));

/*

设备 尺寸 逻辑点 retain 渲染像素

3GS 3.5 320*480 NO 320*480

4 3.5 320*480 YES 640*960

4S 3.5 320*480 YES 640*960

5/5S 4.0 320*568 YES 640*1136

6 4.7 375*667 YES 750*1334

6P 5.5 414*736 超高清 1242*2208

*/

//UIView属性

// 背景颜色.默认背景色是透明的,clearColor

    blueView.backgroundColor=[UIColor cyanColor];
blueView.hidden=YES;
// hidden 是否隐藏 YES 隐藏 NO 显示(默认)

//alpha 透明度 0.0~1.0 (0.0:代表完全透明 1.0代表不透明.默认是1.0)

//tag,标记值,tag值100以下的被系统占用了,所以赋值选择100以上

blueView.tag=100;

// 父视图根据标记的tag值查找视图

 UIView *findView=[self.window viewWithTag:100];

其中:

frame用来表示view的位置和大小

//// redView.frame.size.width=100;error不能单个赋值

//// view的frame只能整体赋值

//// redView.frame=CGRectMake(60, 184, 100, 200);

center 中心点

中心点=((x+w)/2,(y+h)/2)

每一个View都有自己的一套坐标系,默认坐标系的原点在左上角,子视图以父视图的左上角作为原点

frame:视图在父视图中坐标系的位置和大小

center:视图的中心点在父视图坐标系的位置

frame变化center不一定变化(等比缩放的时候,center不会变),center变化frame变化

bounds:指视图在自身坐标系中的位置

//// 默认自身坐标系的原点就是视图的左上角

x>0,y>0 原点左上

x<0,y>0 原点右上

x<0,y<0 原点右下

x>0,y<0 原点左下

center.frame.bounds的相互影响:

1.frame修改,会影响center和bounds

2.center修改,会影响frame,bounds不变

3.bounds修改,会影响frame,center不变

. frame bounds
参考系 父视图 自身
origin 到父视图原点的距离 到自身原点的距离
size 自身的宽高 自身的宽高

两者联系:bounds.size改变,frame也会改变;frame.size改变时,bounds.size也会改变


. frame center
参考系 父视图 父视图

两者联系:frame.origin发生改变,center也会发生改变;center发生改变,frame.origin也发生改变.

center.x=frame.origin.x+frame.size.width/2;center.y=frame.origin.y+frame.size.height/2


. center bounds
参考系 父视图 自身

两者联系:center发生改变bounds.origin不变.bounds.origin发生变化,center不变


// 用父视图 把 子视图 提前
[self.window bringSubviewToFront:view1];
// 用父视图 把 子视图 放至后面
[self.window sendSubviewToBack:view1];
// 父视图通过下标交换两个视图的位置
[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
//
UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(75, 75, 200, 200)];
view3.backgroundColor=[UIColor yellowColor];
// 插入视图
// [view3.window insertSubview:view3 belowSubview:view1];//插入下面
// [self.window insertSubview:view3 atIndex:1];//插入指定位置
// [self.window insertSubview:view3 aboveSubview:view2];//插入上面
// 删除视图
// 自己把自己从父视图上删除
// [view3 removeFromSuperview]; //使用RGB值调颜色
UIColor *color=[UIColor colorWithRed:COLORVALUE green:COLORVALUE blue:COLORVALUE alpha:1.0];
view1.backgroundColor=color;
方法名 描述 示例
insertSubview:atIndex: 在指定的index处插⼊入⼦子视图 [superview insertSubview:grayView atIndex:1];
insertSubview:aboveSubview: 在指定的视图上⾯面添加⼦子视图 [superview insertSubview:grayView aboveSubview:redView];
insertSubview:belowSubview: 在指定的视图下⾯面添加⼦子视图 [superview insertSubview:grayView belowSubview:redView];

方法名 描述 示例
bringSubviewToFront: 把指定的⼦子视图移动到最前⾯面 [superview bringSubviewToFront:redView];
sendSubviewToBack: 把指定的⼦子视图移动到最后⾯面 [superview sendSubviewToBack:redView];
exchangeSubviewAtIndex: withSubviewAtIndex: 交换两个指定索引位置的⼦子视图 [superview exchangeSubviewAtIndex:0 withSubviewAtIndex:2];
removeFromSuperview 把receiver从⽗父视图上移除 [redView removeFromSuperview];

视图重要属性

属性名 描述 示例
hidden 控制视图的显隐 redView.hidden = YES;//隐藏redView redView.hidden = NO;//显⽰示redView
alpha 控制视图的不透明度(⼦子视图也⼀一起 透明),取值范围0~1 redView.alpha = 0.8;
superview 获取本视图的⽗父视图 UIView *superView = [redView superView];
subviews 获取本视图的所有⼦子视图 NSArray *subviews = [redView subviews];
tag 给视图添加标记,被加完标记的视 图可以使⽤用viewWithTag:⽅方法取出 redView.tag = 100,UIView *view = [superview viewWithTag:100];

版权声明:本文为博主原创文章,未经博主允许不得转载。

UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等) 分类: iOS学习-UI 2015-06-30 20:01 119人阅读 评论(0) 收藏的更多相关文章

  1. OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

  2. 各种排序算法的分析及java实现 分类: B10_计算机基础 2015-02-03 20:09 186人阅读 评论(0) 收藏

    转载自:http://www.cnblogs.com/liuling/p/2013-7-24-01.html 另可参考:http://gengning938.blog.163.com/blog/sta ...

  3. UI基础:UI程序执行顺序(UIApplicationMain()函数),自定义视图 分类: iOS学习-UI 2015-07-02 22:09 68人阅读 评论(0) 收藏

    UI程序的一般执行顺序: 先进入main里面,执行函数UIApplicationMain(),通过该函数创建应用程序对象和指定其代理并实现监听,当执行函数UIApplicationMain()时还会做 ...

  4. UI基础:UITextField 分类: iOS学习-UI 2015-07-01 21:07 68人阅读 评论(0) 收藏

    UITextField 继承自UIControl,他是在UILabel基础上,对了文本的编辑.可以允许用户输入和编辑文本 UITextField的使用步骤 1.创建控件 UITextField *te ...

  5. UI基础:UIButton.UIimage 分类: iOS学习-UI 2015-07-01 21:39 85人阅读 评论(0) 收藏

    UIButton是ios中用来响应用户点击事件的控件.继承自UIControl 1.创建控件 UIButton *button=[UIButton buttonWithType:UIButtonTyp ...

  6. C语言基础总结 分类: iOS学习 c语言基础 2015-06-11 10:08 23人阅读 评论(0) 收藏

    //欲练此功必先自宫!!!     //第一天:C语言的基础     //进制     //2进制, 10进制, 8进制, 16进制     //注:8进制数前加0, 16进制数前加0x        ...

  7. UI基础:事件.响应链 分类: iOS学习-UI 2015-07-03 19:51 1人阅读 评论(0) 收藏

    UIEvent:事件,是由硬件捕捉的一个代表用户操作操作设备的对象. 事件分三类:触摸事件.晃动事件.远程控制事件. 触摸事件:用户通过触摸设备屏幕操作对象,.输入数据.支持多点触摸,包含1个到多个触 ...

  8. UI基础:视图控制器.屏幕旋转.MVC 分类: iOS学习-UI 2015-07-02 22:21 62人阅读 评论(0) 收藏

    UIViewController 视图控制器,继承自UIResponder,作用:管理视图并且响应事件 功能: 1.分担APPdelegate的工作 2.实现模块独立,能提高复用性 创建UIViewC ...

  9. UI基础:UILabel.UIFont 分类: iOS学习-UI 2015-07-01 19:38 107人阅读 评论(0) 收藏

    UILabel:标签 继承自UIView ,在UIView基础上扩充了显示文本的功能.(文本框) UILabel的使用步骤 1.创建控件 UILabel *aLabel=[[UILabel alloc ...

随机推荐

  1. Mui --- 页面之间的传值

    A页面 mui.ajax('http://14.50.2.49:80/default/AppLogin?Prm=' + Prm, { data: {}, //dataType: 'json', typ ...

  2. Spring Boot入门——文件上传与下载

    1.在pom.xml文件中添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...

  3. 关于怎么解决java.lang.NoClassDefFoundError错误

    五一在部署新的统一登录时,遇到这样一个问题: 很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实 ...

  4. (转)关于C# 中的Attribute 特性

    摘要:纠结地说,这应该算是一篇关于Attribute 的笔记,其中的一些思路和代码借鉴了他人的文笔(见本文底部链接).但是,由于此文对Attribute 的讲解实在是叫好(自夸一下 ^_^),所以公之 ...

  5. 笔试题-sql语句

    今天遇到了不熟练(不会)的查询题目 回来自己又做了一下,如下 建表语句 -- Table structure for score -- ---------------------------- DRO ...

  6. 认识网页:html + css + JavaScript

    参考资料:爬虫课程 认识网页 使用chrome,右键检查,查看网页源码,左侧的html,右侧的css,底下的JavaScript. 网页 = HTML(内容) + CSS(样式) + JavaScri ...

  7. 20170814xlVBA PowerPoint分类插图加说明

    Public Sub AddPictures() Dim ppApp As PowerPoint.Application Set ppApp = New PowerPoint.Application ...

  8. codeforces 993c//Careful Maneuvering// Codeforces Round #488 by NEAR (Div. 1)

    题意:x轴-100和+100的有敌人飞船,纵坐标由输入数据给出,我方有2飞船在x轴0,y坐标待定.0时刻时敌人同时向我方2飞船发出光线,光线会穿透飞船打到敌人自己,问2飞船放在哪敌人损失最大? 假如- ...

  9. HDOJ-1124 Factorial 数论

    题意哇:求N!末尾多少个0. 很容易想到转化为求N!中5因子的个数.但是从数据范围来看必然不可能一个一个算出来. 所以这里借用数论的一个知识. 如果p是素数,那么n!中p因子的个数可以表示为1-n中整 ...

  10. ubuntu64位库

    安装 12.04ubuntu32位库:sudo apt-get install ia32-libs