温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

UIWindow使用技巧

发布时间:2020-08-11 20:01:11 来源:网络 阅读:884 作者:fightFromNow 栏目:开发技术

看到UIWindow,相信很多人都会想起下方的代码。这是旧版本Xcode提供的模板,用于创建整个项目的视图容器。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    CGRect bounds = [UIScreen mainScreen].bounds;

    self.window = [[UIWindow alloc] initWithFrame:bounds];

    [self.window makeKeyWindow];

}


那究竟什么是UIWindow呢?它是继承自UIView的一种特殊视图,用于承载基本的UI控件,包括UIView。每个app里至少有一个UIWindow,称作keyWindow。当这个window执行becomeKeyWindow

,makeKeyWindow或者makeKeyAndVisible方法,就成为了keyWindow。除了keyWindow之外,还可以创建其他的window用于辅助显示。


UIWindow显示:

通过new,alloc创建出来的window都是隐藏的,将window的属性hidden设成NO或者执行makeKeyAndVisible就可以将window显示出来。



UIWindow的默认显示层级(UIWindowLevel)有3种:

UIWindowLevelNormal -- 普通层级,在状态栏下方

UIWindowLevelAlert -- 跟UIAlertView一个层级,比状态栏高一个层级

UIWindowLevelStatusBar -- 跟状态栏一个层级

创建时默认是UIWindowLevelNormal,一般keywindow都是这个层级。由于UIWindowLevel是CGFloat数值,因此可以将该属性设成一个具体的数值。或者在提供的3种值的基础进行加减。如腾讯的自选股app中,刷新列表时候在状态栏上方显示一个刷新成功提示可以将UIWindowLevel设成UIWindowLevelStatusBar+1。


注意:

项目使用ARC时,使用临时变量创建的UIWindow是不会显示出来的。因为它会直接变销毁掉。也是本人遇到的一个坑。




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI