你的位置:首页 > 操作系统

[操作系统]关于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:



日本旅游哪里好玩呢日本旅游签证怎么办理日本旅游去哪好日本旅游团报价优惠日本蜜月旅游行程参考2015广东卫视跨年狂欢夜在哪举行?广东卫视跨年狂欢夜演出有哪些? 2015冬天岭南印象园有什么好玩的?1月广州岭南印象园有什么活动? 深圳东部华侨城冬天去玩什么?东部华侨城冬天有什么好玩的? 深圳东部华侨城泡温泉多少钱?东部华侨城里面泡温泉价格? 清新金龙洞旅游攻略?清远清新金龙洞怎么去? 清远金龙洞票价?清远六甲金龙洞门票多少钱? 金龙洞地下河地址?清远金龙洞地下河在什么地方? 清远六甲金龙洞好玩吗?六甲金龙洞有什么好玩的? 台山北峰山勇士漂流刺激吗?北峰山勇士漂流多长时间? 北峰山漂流多少钱一次?台山北峰山漂流几点开漂? 北峰山漂流电话?江门北峰山漂流开漂时间? 台山北峰山漂流一天游怎么玩?台山北峰山玩什么? 华山论剑_金庸笔下的华山_带着金庸小说去旅游 玛雅人遗址_北美墨西哥玛雅文明旅游景点_2012玛雅文化遗址末日之旅 那些年我们一起追的女孩拍摄地_那些年外景地_台湾电影之旅 大理国_金庸与大理_天龙八部拍摄地 MA08-0803QEC Datasheet MA08-0803QEC Datasheet MA08-0803QGC Datasheet MA08-0803QGC Datasheet MA08-0803QNC Datasheet MA08-0803QNC Datasheet 桫椤湖 桫椤湖 桫椤湖 雍和宫地址 雍和宫地址 雍和宫地址 世贸天阶在哪 世贸天阶在哪 世贸天阶在哪