美文网首页
1.removeSuperView使用理解

1.removeSuperView使用理解

作者: violafa | 来源:发表于2017-01-05 22:53 被阅读37次

Unlinks the receiver from its superview and its window,and removes it from the responder chain.

译:把当前view从它的父view和窗口中移除,同时也把它从响应事件操作的响应者链中移除。

分析:

这里有两个关键点,可以帮助我们理解在ios当中view是怎么来组织的:a。视图的组织形式;b。响应者链;

今天只分析一下视图的组织形式,关于响应者链是和事件处理息息相关的,另文再写。

在ios当中,视图的设计模式可以看做是组件模式,即以树作为存储的数据结构,这种数据结构具有明确的两个特点:

1.父子关系分明,从根节点出发,通过叶节点向下扩展,同一枝的上一个节点就是下一个节点的superview,下一个节点就是上一个节点的subview;不同枝如果同层,则为兄弟节点。

2.layer关系分明,layer在ios中对事件响应具有举足轻重的作用,通常两个重叠的控件,处在上层的会优先响应;

从上面文档的描述,我们可以看到,这两个特性,也是view在操作时候的核心,即一个view的操作关系到两个方面,视图结构和响应者链。

removeFromSuperview,类似一个剪枝,执行此函数,就等于在树形结构中找到该节点,剪去该节点及其子节点,而并非只是剪去该节点自己。同时,另一个操作就是把该对象从响应者链中移除。

-(void)removeFromSuperview

Discussion

If the receiver’s superview is not nil,the superview releases the receiver. If you plan to reuse a view,be sure to retain it before calling this method and release it again later as appropriate.

译:如果当前view对象的父视图不为空,则父视图会release一次当前视图对象。如果你还想重用当前view,你应该在调用removeFromSuperview之前,retain一次当前view对象,但不要忘记,在恰当的时候要release它,以确保没有内存泄露

Never call this method from inside your view’s drawRect: method.

永远不要在你的view的drawRect方法中调用removeFromSuperview;

相关文章

  • 1.removeSuperView使用理解

    Unlinks the receiver from its superview and its window,an...

  • mysql数据类型

    1.1 大纲 了解MySQL常用的客户端软件 理解整型的使用 理解浮点型的使用 理解字符型的使用 理解枚举型的使用...

  • MySQL数据库基本操作(二)

    1.1 今日目标 了解MySQL常用的客户端软件 理解整型的使用 理解浮点型的使用 理解字符型的使用 理解枚举型的...

  • Go - Micro微服务框架实践 - 容错(十一)

    容错 心跳(Heartbeating)原理解决方案使用方法 负载均衡原理解决方案使用方式 重试原理解决方案使用方式...

  • ApplicationContextAware使用理解

    一、这个接口有什么用? 当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以...

  • ApplicationContextAware使用理解

    问题背景 在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bea...

  • 理解使用runtime

    前言 作为一个runtime的初学着,决定去了解一下runtime的底层方法和数据结构,以方便加深我对于runti...

  • webpack使用理解

    *安装 进入到你的项目 将webpack安装到项目的依赖中,这样就可以使用项目本地版本的webpacknpm ...

  • Block 使用 理解

    一,基础认识 block的声明 很像函数指针,把 * 换成^ 。前面是返回类型,中间是块名,最后是参数类型。 bl...

  • Eventbus3代码分析(三):注解简单使用

    注解简单使用 这里目的是为了理解, 和简单的使用这块理解了,后面都是差不多的 简单理解和使用 自己每次在onCre...

网友评论

      本文标题:1.removeSuperView使用理解

      本文链接:https://www.haomeiwen.com/subject/gmctbttx.html