一个UIView的实例就是一个视图,表示的是屏幕上的一块矩形区域,负责这块矩形区域的描绘以及和用户的交互。

第一、UIView的可视化属性

1. backgroundColor  背景属性

2. hidden  表示该view是否隐藏,

hidden属性为YES时视图隐藏,否则不隐藏。

3. alpha  为0时完全透明,为1时完全不透明

注意事项:

当视图完全透明或者隐藏时,不能响应触摸消息。

也就是alpha等于0.0或者hidden为YES的时候,但是当alpha<0.01的时候,视图就已经接收不到消息了。

视图的alpha值会影响子视图的绘制,但是子视图的alpha值不变。

4. opaque  property
这是一个优化属性,如果该值为YES, 那么绘图在绘制该视图的时候把整个视图当作不透明对待。这样,绘图系统在执行绘图过程中会优化一些操作并提升系统性能;如果是设置为NO, 绘图系统将其和其他内容平等对待,不去做优化操作。为了性能方面的考量,默认被置为YES(意味着‘优化’)。
另一方面,这个消息和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的更多相关文章

  1. UIView详解

    MVC架构模式   MVC(Model-View-Controller)是实现数据和显示数据的视图分离的架构模式(有一定规模的应用都应该实现数据和显示的分离).其中,M代表模型,就是程序中使用的数据和 ...

  2. UI第三节——UIView详解

    - (void)viewDidLoad { [super viewDidLoad]; UIView *redView = [[UIView alloc] initWithFrame:CGRectMak ...

  3. UIView详解2

    第三.Configuring the Event-Related Behavior 1.  userInteractionEnabled  property A Boolean value that ...

  4. 《iOS 7 应用开发实战详解》

    <iOS 7 应用开发实战详解> 基本信息 作者: 朱元波    管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5 ...

  5. 详解CALayer 和 UIView的区别和联系

    详解CALayer 和 UIView的区别和联系   前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALay ...

  6. 【好程序员笔记分享】——UIView与CALayer详解

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animati ...

  7. 【iOS自定义键盘及键盘切换】详解

    [iOS自定义键盘]详解 实现效果展示: 一.实现的协议方法代码 #import <UIKit/UIKit.h> //创建自定义键盘协议 @protocol XFG_KeyBoardDel ...

  8. iOS开发——加载、滑动翻阅大量图片解决方案详解

    加载.滑动翻阅大量图片解决方案详解     今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清 ...

  9. UI第六节——UINavigationController 详解

    1. UINavigationController 是一个容器类.里面盛放的是UIViewController. 容器的意思是,如果你不放入UIViewController,里面就是空的,什么也没有. ...

随机推荐

  1. JS 排列组合

    function $CL(arr, n, noLC, arrDan) { //从arr中取n个组合,然后 var r = [], sum = 0; n = n - arrDan.length; (fu ...

  2. 最简单的javascript 竖向菜单

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...

  3. ThinkPHP第十天(_initialize方法,SESSION销毁,分组配置,include文件引入,JOIN用法)

    1.Action类中的_initialize()函数,先于任何自定义操作函数运行,可认为是控制器的前置操作.可用于检测用户是否登录等检测. 如果多个模块(Action)需要相同_initialize( ...

  4. SSH框架入门学习之二(spring)

    Spring也是一个开源框架,我在学习Spring的时候,认为最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 详细的教程还请大家去看网上的视频,这里贴一个小Demo以供学习. (前 ...

  5. c++中的对象引用(object reference)与对象指针的区别

    ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名. ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指针需 ...

  6. Eucalyptus和Openstack最近版本的改动简单对比

    Eucalyptus3.3四月底发布的,Q4会发布3.4,最新代码都可以在Github上获得 3.3里主要加入的东西有: Auto Scaling 自动扩展,虚拟机资源随需要实时变更 ELB 负载均衡 ...

  7. haml、sass简单的解释

    1. Haml 全名为 HTML Abstract Markup Language,主要就是让开发者能够使用缩排的方式撰写 HTML,做到永不忘记关 Tag 的效果. 例如:%h1= "He ...

  8. [Swust OJ 1097]--2014(数位dp)

    题目链接:http://acm.swust.edu.cn/problem/1097/ Time limit(ms): 1000 Memory limit(kb): 32768   今年是2014年,所 ...

  9. BZOJ 3040: 最短路(road) ( 最短路 )

    本来想学一下配对堆的...结果学着学着就偏了... 之前 kpm 写过这道题 , 前面的边不理它都能 AC .. 我也懒得去写前面的加边了... 用 C++ pb_ds 库里的 pairing_hea ...

  10. JAVA 中URL链接中文参数乱码的若干处理方法

    方法一: http://xxx.do?ptname='我是中国人' String strPtname = request.getParameter("ptname"); strPt ...