添加/移除子视图

2019-03-11  本文已影响0人  奕生奕世_3503

removeFromSuperview

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

removeFromSuperview,移除该节点及其子节点,而并非只是剪去该节点自己。同时,另一个操作就是把该对象从响应者链中移除。

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

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

- (void)addSubview:(UIView *)view //添加子视图

- (void)removeFromSuperview //从父视图中移除

- (void)bringSubviewToFront:(UIView *)view 

//移动指定的子视图到最顶层

- (void)sendSubviewToBack:(UIView *)view

//移动制定的子视图到后方,所有子视图的下面

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index

//在指定的位置插入子视图,视图的所有视图其实组成了一个数组

- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview

//将指定的子视图移动到指定siblingSubview子视图的前面

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview

//将指定的子视图移动到指定siblingSubview子视图的后面

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2

//交换两子视图的位置

- (BOOL)isDescendantOfView:(UIView *)view

removeFromSuper view(从父类中删除)

//判断接收对象是否是指定视图的子视图,或与指定视图是同一视图

insertSubview:atIndex: (放到index层,越往下,index越小)

insertSubview:A aboveSubview:B(把前一个ViewA放在后一个ViewB 的上面)

insertSubview:A belowSubview:B(把前一个ViewA放在后一个ViewB 的下面)

bringSubviewToFront: (把一个View放到上面)

sendSubviewToBack:(把一个View放到下面)

exchangeSubviewAtIndex:withSubviewAtIndex:(来修改遮挡。我的理解是view按照控件加进去的顺给了个index,这个index从0开始递增。显示的时候index数值较大控件遮挡数值较小的。 上面这个函数交换两个控件位置)

上一篇下一篇

猜你喜欢

热点阅读