首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

不用在viewDidLoad中初始复杂的界面

2013-08-23 
不要在viewDidLoad中初始复杂的界面?? ? ?开发中一个详情界面的内容非常多,在从列表页进入详情界面时,在列

不要在viewDidLoad中初始复杂的界面

?? ? ?开发中一个详情界面的内容非常多,在从列表页进入详情界面时,在列表界面停顿很长时间后才进入详情界面。原因就是详情界面的初始化放在了viewDidLoad中,而在此时间内,会一直停在列表界面,用户的使用感受很不好。
解决方案:
1、在viewDidLoad中显法一个加载界面,

2、将界面初始化放在viewDidAppear中。

这样,用户就不会在从列表界面进入详情界面时界面时,等很长时间了。

?

@interface?DetailVC :UIViewController

{

? ?BOOL?_isAppear;

?

? ? UIView* _loadingView;

}

?

- (void)viewDidLoad

{

? ? [superviewDidLoad];

? ??

? ? ?_loadingView?= [[UIViewalloc]initWithFrame:CGRectMake(0,200,320,30)];

? ? ?_loadingView.backgroundColor?= [UIColorclearColor];

? ? ?[self.viewaddSubview:_loadingView];

? ? ? ??

? ? ?UIActivityIndicatorView?*aiv = [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

? ? ?aiv.frame?=CGRectMake(99,3,25,25);

? ? ?aiv.backgroundColor?= [UIColorclearColor];

? ? ?[_loadingViewaddSubview:aiv];

? ? ?[aivstartAnimating];

?

? ? ?UILabel* lblPrompt = [[UILabelalloc]initWithFrame:CGRectMake(129,0,98,30)];

? ? ?lblPrompt.backgroundColor?= [UIColorclearColor];

? ? ?lblPrompt.font?= [UIFontsystemFontOfSize:15.0];

? ? ?lblPrompt.textColor?=DEEP_FOUNT_COLOR;

? ? ?lblPrompt.text?=@"正在加载中······";

? ? ?[_loadingViewaddSubview:lblPrompt];

}

??

-(void)viewDidAppear:(BOOL)animated

{

? ? [superviewDidAppear:animated];

?? ?

? ?if(_isAppear){return?;}

? ??_isAppear?=?YES;

?

? ? //注意!!!在此处执行复杂的界面初始化工作。???

?

? ? if(_loadingView){[_loadingViewremoveFromSuperview];}

}

?

热点排行