2012-05-14 29 views

回答

2

您可以显示加载屏幕。 您可以使用不同的线程并分离线程。 或者,您可以使用UIActivityIndicatorViewUIProgressBar来显示当前正在加载。

UIActivityIndicatorView基本上就像当你启动你的mac。一个旋转的圈子。 UIProgressBar是一个空的酒吧,随着加载量的增加而填满蓝色。

一个UIProgressBar有一个名为progress,而你只是发送startAnimatingstopAnimating消息到UIActivityIndicator

想了解更多关于这两个变量,检查下面的链接:

Progress Bar Apple Documentation

Progress Bar Image

Activity Indicator Apple Documentation

Activity Indicator GIF Image

更新你的问题在其他答案:

你在装呢?您正在加载的类/对象是否具有委托方法?如果你说

仍然被初始化,并绘制到屏幕

考虑以下object是你的对象之一 可以说

if (object) { 
// saying just 'object' asks if it is non-zero/valid 
} 

另外要检查是否吸引到屏幕试试:

if([self.view.subviews containsObject:object]) 

if([object superview] == self.view) 

或方法

-(BOOL)isDescendantOfView:(UIView *)view; 

返回值YES如果接收机的视图立即或远处子视图或者如果视图是接收器本身;否则为NO

ALSO:当我说self.view时,它不一定是self,因为加载视图可能是不同的视图。您可以向其他班级发出一个对象,然后调用该班级而不是self。像:if([otherClass.object superview] == otherClass.view) 你也可以将在其他类的update方法,所以你可以说:

if([otherClass finishedLoading]) 

,然后有以此为update方法:

- (BOOL)finishedLoading { 
return ([object superview] == self.view) 
} 

这是很多参加!还有其他问题吗?

+0

这很有帮助,我想我会用测试的方法去看所有的子视图是否已经初始化。谢谢! – Fitzy

2

“如何加载这些对象” - 可以有多种方式,按您的需要 -

  1. ,您可以使用并发线程加载的东西。

  2. 你可以去延迟加载 - 首先加载那些需要在第一个屏幕上显示的东西(考虑到你正在加载第一个屏幕上不需要的数据)。

  3. 您可以显示加载屏幕并让用户知道加载正在进行。

你可以使用一个UIActivityIndicatorUIProgressBar表明当前加载的。

+0

说我显示一个加载屏幕,我怎么知道什么时候一切都完成加载,所以我可以停止显示该屏幕? – Fitzy

+0

@Fitzy我在回答更新中回答这个问题 – MCKapur

+0

@Fitzy - 问题修复还是有些疑问? – rishi

相关问题