UIView详解1
一个UIView的实例就是一个视图,表示的是屏幕上的一块矩形区域,负责这块矩形区域的描绘以及和用户的交互。
第一、UIView的可视化属性
1. backgroundColor 背景属性
2. hidden 表示该view是否隐藏,
hidden属性为YES时视图隐藏,否则不隐藏。
注意事项:
当视图完全透明或者隐藏时,不能响应触摸消息。
也就是alpha等于0.0或者hidden为YES的时候,但是当alpha<0.01的时候,视图就已经接收不到消息了。
视图的alpha值会影响子视图的绘制,但是子视图的alpha值不变。
另一方面,这个消息和alpha 是有关系的。 一个不透明视图需要整个边界里面的内容都是不透明的。基于这个原因,opaque设置为YES,要求对应的alpha必须为1.0。如果一个UIView实例opaque被设置为YES, 而同时它又没有完全填充它的边界(bounds),或者它包含了整个或部分的透明的内容视图,那么将会导致未知的结果。
因此,如果视图部分或全部支持透明,那么你必须把opaque这个值设置为NO.
5. clipsToBounds
在类的层次结构中,如果clipsTobounds设为YES,超出superView的部分subview就不会显示,否则会做显示, 默认情况下是NO。
6. clearsContextBeforeDrawing
A Boolean value that determines whether the receiver’s bounds should be automatically cleared before drawing.
7. layerClass和 layer property 跟Core Animation layer有关
第二、管理视图层次
1. superview property 返回该view的superView
sample:
[self.windowaddSubview:self.viewController.view];
NSLog(@"the superView is %@",[self.viewController.viewsuperview]);
2. subviews property 返回该view的subviews
sample:
NSLog(@"the suberViews are %@",[self.windowsubviews]);
3. window
property 返回该view的window,如果没有返回nil
NSLog(@"the window is %@",[self.viewController.viewwindow]);
4. – addSubview:
5. – bringSubviewToFront:
把指定的子view放到最顶层,其父视图调用bringSubviewToFront()方法。
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2];
[self.view bringSubviewToFront:button]; }
6.--sendSubviewToBack:
将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2];
[self.view sendSubviewToBack:button2]; //[self.view bringSubviewToFront:button]; }
7.– removeFromSuperview
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2]; [button removeFromSuperview];
}
8. – insertSubview:atIndex:
Parameters
view
The view to insert. This value cannot be nil.
index
The index in the array of the subviews property at which to insert the view. Subview indices start at0 and cannot be greater than the number of subviews.
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2]; UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
button3.backgroundColor=[UIColor greenColor];
[self.view insertSubview:button3 atIndex:2];
}
9.– insertSubview:aboveSubview:
Inserts a view above another view in the view hierarchy.
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2]; UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
button3.backgroundColor=[UIColor greenColor]; [self.view insertSubview:button3 aboveSubview:button];
}
10.– insertSubview:belowSubview:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2]; UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
button3.backgroundColor=[UIColor greenColor];
[self.view insertSubview:button3 belowSubview:button];
}
11.– exchangeSubviewAtIndex:withSubviewAtIndex:
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
Parameters
index1
The index of the first subview in the receiver.
index2
The index of the second subview in the receiver.
sample:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 50, 50)] autorelease];
button.backgroundColor=[UIColor redColor];
[self.view addSubview:button]; UIButton *button2=[[[UIButton alloc] initWithFrame:CGRectMake(130, 130, 50, 50)] autorelease];
button2.backgroundColor=[UIColor blueColor]; [self.view addSubview:button2]; UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
button3.backgroundColor=[UIColor greenColor];
[self.view addSubview:button3];
[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:3];
}
12
– isDescendantOfView:
Returns a Boolean value indicating whether the receiver is a subview of a given view or identical to that view.
- (BOOL)isDescendantOfView:(UIView *)view
sample:
NSLog(@"the result is %d",[button3isDescendantOfView:self.view]);
UIView详解1的更多相关文章
- UIView详解
MVC架构模式 MVC(Model-View-Controller)是实现数据和显示数据的视图分离的架构模式(有一定规模的应用都应该实现数据和显示的分离).其中,M代表模型,就是程序中使用的数据和 ...
- UI第三节——UIView详解
- (void)viewDidLoad { [super viewDidLoad]; UIView *redView = [[UIView alloc] initWithFrame:CGRectMak ...
- UIView详解2
第三.Configuring the Event-Related Behavior 1. userInteractionEnabled property A Boolean value that ...
- 《iOS 7 应用开发实战详解》
<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波 管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5 ...
- 详解CALayer 和 UIView的区别和联系
详解CALayer 和 UIView的区别和联系 前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALay ...
- 【好程序员笔记分享】——UIView与CALayer详解
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animati ...
- 【iOS自定义键盘及键盘切换】详解
[iOS自定义键盘]详解 实现效果展示: 一.实现的协议方法代码 #import <UIKit/UIKit.h> //创建自定义键盘协议 @protocol XFG_KeyBoardDel ...
- iOS开发——加载、滑动翻阅大量图片解决方案详解
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清 ...
- UI第六节——UINavigationController 详解
1. UINavigationController 是一个容器类.里面盛放的是UIViewController. 容器的意思是,如果你不放入UIViewController,里面就是空的,什么也没有. ...
随机推荐
- Angular JS 学习笔记(一)
1. 菜鸟教程:http://www.runoob.com/angularjs/angularjs-tutorial.html 2. Angular JS中文网:http://www.apjs.net ...
- ubuntu14.04LTS ruby on rails 开发环境
小弟初学 Ruby,也没用过Linux. 在网上搜了好多关于开发环境的配置的文章,但总是和实际有点出入,找了N遍文章后,终于找到最简环境安装配置方法,分享下 推荐用 Ubuntu,感觉对于习惯用Win ...
- Oracle游标-循环查询表中数据(表名),并执行
Oralce 表中存有一个字段,该字段存储表名,要把该表中的所有表名查询出来(即表名结果集),且执行结果集from 表名结果集: declare v_ccount ); --定义一个游标变量 curs ...
- Thread.Sleep(0)的意义 操作系统中CPU的竞争策略
在线程的学习中遇到的 不太明白就搜了一下 有一篇觉得写得很好的分享一下 转载:http://www.360doc.com/content/12/1220/07/1054746_255212714.s ...
- JSP内置对象---application
application 对象 服务器启动后,就产生了application 对象.当一个客户访问服务器上的一个JSP 页面时,JSP 引擎为该客户分配这个application 对象, 当客户在 ...
- c++实现二分查找
简要描述: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除 困难. 条件:查找的数组必须要为有序数组. 二分查找的过程剩简要描述如下图: 二种实 ...
- js中的typeof
typeof的几种返回结果的分类: 转自:http://www.360doc.com/content/14/0718/15/8790037_395279403.shtml typeof运算符介 绍:t ...
- Publisher/Subscriber 订阅-发布模式
Publisher/Subscriber 订阅-发布模式 本博后续将陆续整理这些年做的一些预研demo,及一些前沿技术的研究,与大家共研技术,共同进步. 关于发布订阅有很多种实现方式,下面主要介绍WC ...
- oracle 10g函数大全--分析函数
oracle分析函数--SQL*PLUS环境 一.总体介绍 12.1 分析函数如何工作 语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达 ...
- 奔小康赚大钱(km)
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...