分享

bringSubviewToFront 和 sendSubviewToBack

 没原创_去搜索 2016-01-06


将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。

将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。

用第二层子视图 换 第一层子视图的位置  self.view是第0层

[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:2];






========================
控件的层级关系和你加入到父视图的顺序有关,也就是先addsubview至父视图的,层级越低,会被后加入的遮盖。 可以通过以下函数改变子视图的层级 - (void)bringSubviewToFront:(UIView *)view;将一个UIView显示在最前面 - (void)sendSubviewToBack...





========================


用一段簡單的代碼來達到你要的效果,

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    
    UITouch *t = [touches anyObject];
    
    if (t.view == ViewA) {
        [self.view bringSubviewToFront:ViewA];
    } else if (t.view == ViewB) {
        [self.view bringSubviewToFront:ViewB];
    }
}

用圖層的概念去想 bringSubviewToFront 和 sendSubviewToBack 的話就很簡單, 因為 addsubview 是把 view(圖層)
一個一個堆疊上去的, 所以後上去的 view 會壓住前面的 view, 這時候, 如果調用 bringSubviewToFront, 就可以把這個 view
拉到最上層, 不會被擋住, 反之, sendSubviewToBack 則是可以把 view 放到最下面去, 開 interfacebuild 來看, 
也可以很容易了解這個概念.





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多