美文网首页
UIView 中一些管理 Subview 常用的方法

UIView 中一些管理 Subview 常用的方法

作者: Hris | 来源:发表于2017-06-29 09:48 被阅读188次

    一个UIview里面可以包含很多的Subview(其他的UIview),而这些Subview彼此之间也会有一定的阶段关系,比较类似于绘图软件中图层的概念,以下主要是总结了一些SubView常用方法.

    1. 将Subview从当前的UIView中移除

    [Subview removeFromSuperview];

    2. 替UIView增加一个Subview

    [UIView addSubview:Subview];

    在 UIView 中将 Subview 往前或是往后移动一个图层(往前移动会覆盖住较后层的 Subview,而往后移动则会被较上层的 Subview 所覆盖)

    3. 将Subview往前移动一个图层(与它的前一个图层对调位置)

    [UIView bringSubviewToFront:Subview];

    4. 将Subview往后移动一个图层(与它的后一个图层对调位置)

    [UIView sendSubviewToBack:Subview];

    在 UIView 中使用索引 Index 交换两的 Subview 彼此的图层层级。

    5. 交换两个图层

    [UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB];

    使用 Subview 的变数名称取得它在 UIView 中的索引值(Index )。

    6. 取得Index

    NSInteger index = [[UIView subviews] indexOfObject:Subview名称];

     Subview 加上 NSInteger 的註记 (Tag),好让之后它们分辨彼此。

    7. 加上註记

    [Subview setTag:NSInteger];

    取得 UIView 中所有的 Subview,此方法会传回一个 NSArray,并以由后往前的顺序列出这些 Subview,下图中是列出范例图片里 Root 中所有的 Subview。

    //取的UIView下的所有Subview

    [UIView subviews]

    8. addSubview和insertSubview的区别

    addSubview是加到最后

    insertSubview是加到指定的位置

    即相当于将insertSubview的atIndex参数设置成view.subviews count

    [view addSubview:oneview] == [view insertSubview:oneview atIndex:view.subviews count]

    9. 如果要移除一个 UIView 的所有子视图,SDK 里没有 remove all 之类的方法。可以用 for loop 循环调用 – removeFromSuperview 来移除

    例如:

    for(UIView *view in [self.view subviews])

    {

    [view removefromsuperview]

    }

    相关文章

      网友评论

          本文标题: UIView 中一些管理 Subview 常用的方法

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