将一个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 來看, 也可以很容易了解這個概念.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。