将一个UIView显示在最前面只需要调用其父视图的 将一个UIView层推送到背后只需要调用其父视图的 用第二层子视图 换 第一层子视图的位置 [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 來看, 也可以很容易了解這個概念. |
|