UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等)
2015-06-30 20:01
726 查看
UIView 视图类,视图都是UIView或者UIView子类
UIWindow 窗口类,用于展示视图,视图一定要添加window才能显示
注意:一般来说,一个应用只有一个window
创建一个UIWindow对象
UIScreen 屏幕类 [UIScreen mainScreen]主屏幕
[[UIScreen mainScreen]bounds]获得主屏幕大小
如:
1.创建工程
2.把ARC改为MRC
3.window的属性由string改为retain
4.重写dealloc方法,对_window进行释放
UIColor 颜色类
创建视图
iOS中能够看见的视图都是矩形的.
frame用来表示view的位置和大小
位置:
//打印
CGSize 结构体,用于存放视图宽和高
大小:
//CGRect 结构体,用于存放一个矩形的数据,包括位置和宽高(包含CGpoint和CGSize)
/*
设备 尺寸 逻辑点 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
//alpha 透明度 0.0~1.0 (0.0:代表完全透明 1.0代表不透明.默认是1.0)
//tag,标记值,tag值100以下的被系统占用了,所以赋值选择100以上
blueView.tag=100;
// 父视图根据标记的tag值查找视图
其中:
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不变
两者联系:bounds.size改变,frame也会改变;frame.size改变时,bounds.size也会改变
两者联系: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.origin不变.bounds.origin发生变化,center不变
视图重要属性
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 | 自身的宽高 | 自身的宽高 |
. | frame | center |
---|---|---|
参考系 | 父视图 | 父视图 |
center.x=frame.origin.x+frame.size.width/2;center.y=frame.origin.y+frame.size.height/2
. | center | bounds |
---|---|---|
参考系 | 父视图 | 自身 |
// 用父视图 把 子视图 提前 [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) 收藏
- iOS 9 新增 UIStackView 官方文档翻译
- No sources that matches the given name (at 'layout_toLeftOf' with value '@id/
- IOC--UI--LessonView
- easyUI 获取combobox全部数值进行对比方法
- UIDragDropItem拖拽不能离开scrollview范围
- NGUI 小总结
- UITableView优化
- Guice 学习(一)永远的 Hello World
- 【转】UiAutomator简要介绍
- 百度ueditor富文本编辑器使用初体验
- 使用easeui dialog弹出框中使用CKeditor多次加载后无法编辑问题
- 《开源框架那点事儿20》:发布TinyUI前端框架
- Jenkins(三)——MSBuild
- 技术文摘2 uiview动画
- QWord2vec:word2vec移植版+GUI
- iOS 获取图片的三种方法 UIImagePickerController
- [新浪微博]response Code=-1011 Request failed: forbidden (403)错误的解决办法
- ORA-00304: requested INSTANCE_NUMBER is busy
- UISearchBar 使用方法小结