问题加载启动画面笔尖

时间:2011-08-26 16:00:10

标签: iphone objective-c ios cocoa xcode4

我有一个加载大量数据的应用程序。我将数据加载到一个单独的线程上,但在加载时我想显示一个启动画面。对于启动画面,我创建了一个NIB文件,但是我无法显示NIB。我不确定我做错了什么。如果有人可以提供帮助,我将非常感激。这是代码:

标题文件:

@interface DigiWireCDAppDelegate : NSObject <UIApplicationDelegate> {
    --
    UIWindow *window;
    --
    UIView *loadingView;
    UIActivityIndicatorView *loadingAnimationIndicator;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
--
@property (nonatomic, retain) IBOutlet UIView *loadingView;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *loadingAnimationIndicator;
--

实现:

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

    [self loadData];

    [loadingAnimationIndicator startAnimating];
    loadingView.hidden = NO;

    [window addSubview:loadingView];
    [window bringSubviewToFront:loadingView];

    [self.window makeKeyAndVisible];

    return YES;
}

如果这有帮助,这里是NIB:

loadView NIB

3 个答案:

答案 0 :(得分:1)

仅仅因为您将某些东西设置为IBOutlet并不意味着xib会自动加载。在applicationDidFinishLaunching:您想要[[NSBundle mainBundle] loadNibNamed:@"loadingView" owner:self options:nil];,以便将xib实际加载到内存中。

答案 1 :(得分:0)

我不知道[self loadData]中有什么,但我猜它在主线程上工作,因此阻止了UI的更新。您需要为运行循环提供运行机会,以便让活动指示器开始动画。如果可能的话,在后台线程上运行loadData,或者使用performSelector:withDelay:在很短的时间后运行它(如0.1),这样运行循环就有机会勾选。

答案 2 :(得分:0)

您的png实际上是否被复制到int结果包中?也许您的图像视图指向文件系统上某处的图像而不是包。