关于addSubView需要注意的事项 -今天吃了一个大亏

addSubview:

Adds a view to the end of the receiver’s list of subviews.

译:增加一个视图到接收者的子视图列表中。

- (void)addSubview:(UIView *)view

Parameters

view

The view to be added. This view is retained by the receiver. After being added, this view appears on top of any other subviews.

译:view参数代表被增加的view,这个view会被它的接收者retain一次(即引用计数+1)。增加完成之后,这个view将出现在接收者的其他子视图的上面。

ps:关于子视图的出现的层次的问题,可以从这些子视图被保存的数据结构来探寻答案 ,每个视图都有个数组的属性,subviews,这个就是保存的它的子视图的引用。而这个数组的顺序就是代表了各个子视图被加入时的顺序。index=0的就是最先被加入进去的,以此类推。所以,索引值越高的视图越不容易被覆盖。

Discussion

This method retains view and sets its next responder to the receiver, which is its new superview.

译:这个方法会retain一次view,并且设置它的下一个响应者是receiver,即它的新的父视图。

ps:在removeFromSuperview里已经说过,其实视图直接的操作往往牵涉到两个方面的操作,一个是视图的数据结构,一个是响应者链。当然,addsubview也不例外。

Views can have only one superview. If view already has a superview and that view is not the receiver, this method removes the previous superview before making the receiver its new superview.

译:每一个视图只能有唯一的一个父视图。如果当前操作视图已经有另外的一个父视图,则addsubview的操作会把它先从上一个父视图中移除(包括响应者链),再加到新的父视图上面。

总结: 把两个内存相同的View,addSubview一个View上,最后不是两个View的叠加,而是就是加上了一层!

Availability

  • Available in iOS 2.0 and later.

See Also

    • – insertSubview:atIndex:
    • – insertSubview:aboveSubview:
    • – insertSubview:belowSubview:
    • – exchangeSubviewAtIndex:withSubviewAtIndex:
时间: 2024-12-12 23:34:37

关于addSubView需要注意的事项 -今天吃了一个大亏的相关文章

ACM 324有一堆桃子不知数目猴子第一天吃掉一半又多吃了一个第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29) 输入

#include<stdio.h> int fun(int m); int main() { int n; int m; scanf("%d",&n); while(n--) { scanf("%d",&m); m=m+1; printf("%d",fun(m)); printf("\n"); } return 0; } int fun(int m) { int s; if(m==1) s=1; e

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个&#160;&#160;&#160;&#160; 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下&#160;&#160;&#160;&#160; 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

package C; public class Tao { public static void main(String[] args) { int m=1; for (int i = 10; i >1; i--) { m=(m+1)*2; } System.out.println("第一天摘了桃子: "+m+" 个"); } }

三星Note 7停产,原来是吃了流程的亏

三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连天雨算是把三星淋了个措手不及,致其声誉扫地.危机重重. 表面看来,此事件源于电池自燃,深究起来可以追溯到管理层变动带来的组织管理问题,再深究,业务流程管理系统可能是最基础和最关键的因素. 高层变动,赶超苹果埋祸端 2014年5月,三星老掌柜李健熙重病入院,儿子李在镕与元老崔志成(G.S.Choi)共掌时局.同

【警语】受得小气,则不至于受大气;吃得小亏,则不至于吃大亏

能够忍受小的欺凌,就不至于招惹更大的灾祸侮辱:面对一切微小的不公平待遇,或者利益分配有所冲突时,能够退让,不和人争蝇头小利,才不至于遭受更多损失. 我们在现实中很容易看到,无论是人与人之间.团体之间,甚至国家.种族之间,往往只是一句话的不和.一件极小的事情不能忍受,酿成许多惨剧,招来杀身之祸.牢狱之灾.财物重大损失.国家的动荡不安.教训惨痛,当事人往往后悔莫及. 面对别人的横加欺侮.障碍打击,乃至一切貌似不公正的处境,我们能够逆来顺受,不予计较,才能化解纠纷,消灾免难.这需要肚量,更需要智慧.首

连马云都自愧不如 真正的草根创业者

一天,迷茫的陈年找雷军喝酒.饭桌上,雷军直言不讳地问:你生产的产品,你自己用么?陈年的脸一下就红了,因为当时他穿的是nike,全身没有一件凡客.临走时,雷军说:盲目扩张是上个世纪的做法,你应该学习小米,以用户需求为导向,用产品来塑造口碑. 曾看到一个网络调查,现在的创业者,75%的人都崇拜马云,剩下的都崇拜马化腾. 原因也很简单:马云很有钱,而且很酷. 我们也经常在网上看到马云成功前那些失败的故事,什么高考数学5分.在肯德基当服务生.送过外卖.当过搬运工人,这些扯淡的事实一般都是传销团伙编出来的

【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员

===================问题情况描述=================== 小弟一直在玩discuz论坛开源程序,这个论坛程序经常涉及到论坛搬家的问题. 今天我在本地Wamp环境下,用开源软件帝国备份王2010进行数据库备份数据,结果打开发现报错500! 这真是坑爹了,回想下以前自己使用这个开源程序进行备份也不下于十几次了,大部分都正常成功, 但也不乏出现这种情况的,小弟之前一般遇到这种问题, 都是直接忽略,换其他办法来进行备份,但是用惯了帝国备份王,换其他的方法备份数据,总感觉难

css清除浮动的两种方式(clearfix和clear)

最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都没清除浮动,导致经常会有div包不住子级的东西(经常一审查height=0).现利用两例子来巩固下. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"

宝爷Debug小记——Cocos2d-x(3.13之前的版本)底层BUG导致Spine渲染花屏

最近在工作中碰到不少棘手的BUG,其中的一个是Spine骨骼的渲染花屏,在战斗中派发出大量士兵之后有概率出现花屏闪烁(如下图所示),这种莫名奇妙且难以重现的BUG最为蛋疼. 前段时间为了提高Spine骨骼动画的加载速度,将Spine库进行了升级,新的Spine库支持skel二进制格式,二进制格式的加载速度比json格式要快5倍以上. 这是一个大工程,游戏中所有的骨骼动画都需要使用更高版本的Spine编辑器重新导出,由于部分美术没有对源文件进行版本管理,丢失了源文件,导致部分骨骼动画要重新制作,浪

自己办理积分入户深圳—经验之谈

整个过程历经大概2个半月,完全不用找其他中介公司,中介公司一般会收费2000-3000.当然如果可以通过公司办理,那是更方便了,此次因一些原因,没能通过公司办理.个人办理就是要特别细心,每次去办理前,要提前想好所有细节.问好所有的资料,和注意事项,有时问一次还不行,多咨询几次,结合网上查的,再确定,因为有时电话咨询过去,对方告诉的资料还是有漏掉的部分,特别是打114的. 以下没有写明具体的材料,一是担心不同时候政策变材料会变,所以最好是办理时自己多查询咨询下,代理公司会给一张资料单,上面最准.