最好不要在UIViewController的loadView方法中改变状态栏的可视性(比如状态栏由显示变为隐藏、或者由隐藏变为显示),因为这样的操作会导致重复调用2次loadView和viewDidLoad方法。虽然运行效果是对的,但是系统连续调用了2次loadView和view ...
最好不要在UIViewController的loadView方法中改变状态栏的可视性(比如状态栏由显示变为隐藏、或者由隐藏变为显示),因为这样的操作会导致重复调用2次loadView和viewDidLoad方法。
虽然运行效果是对的,但是系统连续调用了2次loadView和viewDidLoad方法,导致创建了2次UIView,造成了不必要的开销。为什么会产生这样的结果呢?原因是->
状态栏由显示变为隐藏,意味着屏幕的可用高度变长了,UIViewController的UIView的高度也要重新调整,因此系统会重新调用loadView方法创建UIView,创建完毕后再次调用viewDidLoad方法。
下面是代码演示,以及结果。
//// ViewController.m// CX 不要在UIViewController的loadView方法中改变状态栏的可视性//// Created by ma c on 16/3/19.// Copyright © 2016年 xubaoaichiyu. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController-(void)loadView{ NSLog(@"loadView"); //隐藏状态栏 [UIApplication sharedApplication].statusBarHidden = YES; UIView * view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds]; view.backgroundColor = [UIColor orangeColor];}- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"viewDidLoad"); }@end
原标题:IOS 杂笔- 7(不要在UIViewController的loadView方法中改变状态栏的可视性)
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。