OS X中如何将一个View放在最上层


在iOS中我们需要将一个View放在最上层,我们只需调用bringSubviewToFront:方法即可,大致代码如下:

UIView *downView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
UIView *upView = [[UIView alloc] initWithFrame:CGRectMake(120, 120, 100, 100)];
downView.backgroundColor = [UIColor redColor];
upView.backgroundColor = [UIColor purpleColor];
[self.view addSubview:downView];
[self.view addSubview:upView];
[self.view bringSubviewToFront:downView];

这样就可以将downView移到最上层来。

但是在OS X中是没有这个方法的,OS X中有一个方法

- (void)addSubview:(NSView *)aView positioned:(NSWindowOrderingMode)place relativeTo:(NSView *)otherView

方法说明:

Inserts a view among the view’s subviews so it’s displayed immediately above or below another view.

参考文档已经说的很明显了,这个方法可以将一个View放在上层或者下层。其中第二个NSWindowOrderingMode类型的参数就是选择将View放在哪里,参数为枚举类型,如下所示:

enum {
   NSWindowAbove         =  1,
   NSWindowBelow         = -1,
   NSWindowOut             =  0
};
typedef NSInteger NSWindowOrderingMode;

英文很直白,所以不再多说。

在OS X中需要将一个View放在最上层,我们只需要调用

- addSubview:positioned:relativeTo:

方法即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容