UIView

【UIView的作用】

主要用来显示应用程序的内容,可以作为label、button等控件的容器、表示屏幕上的一块矩形区域,同时可以处理该区域的绘制和触屏事件。

MVC,MVVM等设计架构中的V,指的就是View部分

【视图的初始化】

- initWithFrame:(CGRect)frame

【视图坐标】(Frame和bounds的关系)

Frame以其父视图为起点,得出它自己的位置。

Bounds即以iOS系统的坐标原点为起点,坐标为(0,0)

Center表示视图中心点所在的位置,设置此属性可以改变视图的位置。

举例验证:

注意:缺省情况下,视图的边框并不会被父视图的边框裁剪。如果你希望让一个视图裁剪其子视图,需要将chipsToBounds 属性设置为YES

【UIView的层次结构】

一个视图就是一个容器,当一个视图包含其他视图的时候,两个视图之间就建立了一个父子关系,被包含的视图被称为“子视图(subView)”,包含的视图称为”父视图或者超视图(superView)”

从视觉上看,子视图隐藏了父视图的内容,设置透明属性可以看到父视图的内容。

每一个父视图都有一个有序的数组存储着它的子视图,存储的顺序就会影响到每个子视图的显示效果,比如两个兄弟视图,后来被加入的视图就会在另外视图的上面

一个视图可以嵌入多个子视图(subView),但是只能有一个superView;

【常用属性】

alpha //透明度

backgroundColor //背景色

subViews //子视图集合

hidden //是否隐藏

tag //标签值

superview //父视图

multipleTouchEnabled //是否开启多点触控

userInteractionEnabled //是否响应触摸事件

通过transform属性来改变

CGAffineTransformScale //对视图进行比例缩放

CGAffineTransformRotate //对视图做变焦转换 M_PI代表180度 顺时针

CGAffineTransformTranslate //对视图在原来的位置上做平移 移动单位为像素

【UIView的常用方法】

当调用addSubView的时候,父视图就会变成子视图的持有者,这时候子视图的引用计数就会增加1,调用removeFromSuperView的时候,则会进行引用计数相应减少

addSubview: //添加子视图

insertSubView:atInsex: //视图插入到指定索引位置

insertSubView:aboverSubview:: //视图插入指定视图之上

insertSubview:belowSubview: //视图插入指定视图之上

bringSubviewToFront: //把视图移动到最顶层

sendSubviewToBack: //把视图移动到最底层

exchangeSubviewAtIndex:withSubviewAtIndex: //把两个索引对应的视图调换位置

removeFromSuperview //把视图从父视图中移除

viewWithTag: //根据指定的tag值,查找视图

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

myView.tag = 10;

[self.window addSubview:myView];

UIView *view = [self.window viewWIthTag:100];

【自定义UIView完成UIButton代理以及block回调的实现】

//布局的时候会调用,在iOS5.1

- (void)setNeedsLayout

- (void)layoutSubviews{

}

- (void)setNeedsDisplay;//该方法的调用,可以让视图完成重绘

- (void)drawRect:(CGRect)rect{

}

UIView的作用的更多相关文章

  1. 【转】 UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout

    原文:http://blog.sina.com.cn/s/blog_923fdd9b0101b2b4.html 1.在Mac OS中NSWindow的父类是NSResponder,而在iOS 中UIW ...

  2. [转] 关于UIView

    [转载] 原文地址 :http://blog.csdn.net/itianyi/article/details/8982518 UIView是开发中使用得最多的控件了,深入的理解很有必要. UIVie ...

  3. UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout

    UIview需要知道的一些事情:setNeedsDisplay.setNeedsLayout 1.在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父 ...

  4. UI控件之UIView与动画

    UIView:用来展示用户的界面,响应用户的操作(继承自UIResponder) UIView的作用:绘图.动画.处理事件 UIView可以包含和管理子视图,并且决定子视图的位置大小 获取所有的子视图 ...

  5. UIWindow与UIView

    UIView与UIWindow * 一般应用程序只有一个UIWindow对象.所有的控件都是在UIWindow上展现的.每个UIView对象都有一个window属性,表示当前view显示在哪个窗体上. ...

  6. UIDynamic 基础认识

    UIDynamic 是从iOS 7开始引入的一种新技术,属于UIKit框架,可以模拟现实生活中的物理现象,如:碰撞.抖动.摆动等 动力效果:有一个效果器,叫做“动力效果器”里面面可以添加“动力效果” ...

  7. 从此走上一条iOS程序猿不归路。。。

    新的城市,新的生活!前不久刚刚结束了苦逼的面试找工作之旅,期间也小有收货,如今正处年底工作闲暇之余,将前一阵子陆陆续续的总结整理了一下,本人菜鸟程序猿一只,水平有限,本文总结的知识不算深入,比较浅显, ...

  8. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...

  9. DZNEmptyDataSet框架阅读

      前段时间使用公司封装的空白页占位视图工具,工具是对DZNEmptyDataSet框架的封装.这个框架以前在许多项目也都用过,却没有认真阅读过源码,真的很遗憾.这两天趁五一放假有空,将DZNEmpt ...

随机推荐

  1. python中列表的常见操作

    list1 = ['a','b','ca','d','e','a'] list2 = [1,5,7,9,5,4,3] info = {'name':'wang','age':32,'num':1258 ...

  2. WPF CefSharp 爬虫

    1.实际需求          EMS邮件的自动分拣,要分拣首先需要获取邮件的面单号和邮寄地址,现在我们的快递一般都有纸质面单的,如果是直接使用图像识别技术从纸质面单中获取信息,这个开发的成本和实时性 ...

  3. 深入理解计算机系统 第八章 异常控制流 Part2 第二遍

    第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了第 508~530 页,共 23 页) 第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/10206 ...

  4. 网站搭建-IIS Windows系统搭建网站 (不小心看到自己的密码 - 怎么找回网站记住的密码)

    上一期说到IIS可以用自己喜欢的网站来直接玩,然后得得瑟瑟将自己的博客园账号首页拿过去玩(今天第一天水博客园). 然后自己访问啊,访问啊,然后就一直点啊点的,当然,其实后面的链接都是跳转到博客园里面去 ...

  5. redis 底层数据结构

    简单动态字符串SDS 包含字符串长度,剩余可用长度,字符数组 用于Redis中所有的string存储 字典(map) 数组+链表形式,跟hashMap很像 链地址法解决hash冲突 rehash使用新 ...

  6. a 标签添加 onclick 事件

    a 标签添加 onclick 事件 <a href="javascript:void(0);" οnclick="js_method()">点击&l ...

  7. nyoj 458-小光棍数 (471)

    458-小光棍数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:6 提交数:6 难度:1 题目描述: 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111, ...

  8. Centos内核参数优化

    关于内核参数优化 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.ip_local_port_range = 1024 65000  net.ipv4.tcp_ ...

  9. Python装饰器的使用

    对于python编程人员,装饰器的使用肯定是必不可少的. 装饰器分为系统定义装饰器和自定义装饰器:系统定义装饰器:@classmethod:类方法装饰器  @staticmethod:   静态方法装 ...

  10. Python 编程语言要掌握的技能之一:使用数字与字符串的技巧

    最佳实践 1. 少写数字字面量 “数字字面量(integer literal)” 是指那些直接出现在代码里的数字.它们分布在代码里的各个角落,比如代码 del users[0] 里的 0 就是一个数字 ...