如何在iphone应用程序中将UIActivityIndi​​cator添加到启动画面?

时间:2010-10-19 04:06:18

标签: iphone

如何将UIActivityIndi​​cator添加到初始屏幕?

编辑:我尝试了以下内容

我创建了名为SplashViewController的UIViewController Sub类。并且代码如下,图像仍然没有持续足够长的时间。

4 个答案:

答案 0 :(得分:3)

如果“启动画面”是指您的应用启动时显示的图像,答案是您不能。

您可以做的是拥有一个初始视图,其中包含一个看起来就像您的启动图像的背景图像,然后在该视图中添加一个活动指示器。对用户而言,活动指示符似乎是您的启动图像的“一部分”。

诀窍是尽快加载你的初始笔尖(保持小而简单),这样静态图像就会转换为你可以立即操作的视图。

答案 1 :(得分:1)

这取决于启动画面的含义。如果您的意思是运行应用程序时首次显示的图像,那么我们就会遇到更棘手的情况。这只是一个静态图像(Default.png),那么您需要做的是创建一个以启动画面图像为背景的视图,在其上添加活动指示器视图,然后直接添加该视图应用代表。当您加载任何内容时,您可以摆脱此视图并继续执行其余程序。可能在NIB中更容易做,但是这里有一个以编程方式的想法:

- (void)loadView;
{
    CGRect r = [UIScreen mainScreen].applicationFrame;
    UIView *activityView = [[[UIView alloc] initWithFrame:r] autorelease];
    self.view = activityView;

    activityView.backgroundColor = [UIColor blackColor];
    activityView.alpha = 0.5;

    UIImageView *imgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]] autorelease];
    [activityView addSubview:imgView];

    CGRect wheelR = CGRectMake(r.size.width / 2 - 12, r.size.height / 2 - 12, 24, 24);
    UIActivityIndicatorView *activityWheel = [[UIActivityIndicatorView alloc] initWithFrame:wheelR];
    activityWheel.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
    activityWheel.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
                                    UIViewAutoresizingFlexibleRightMargin |
                                    UIViewAutoresizingFlexibleTopMargin |
                                    UIViewAutoresizingFlexibleBottomMargin);
    [activityWheel startAnimating];
    [activityView addSubview:activityWheel];
}

答案 2 :(得分:1)

Hi Pradeep我在ios的monotouch中实现了这个代码,所以这段代码有助于实现你的逻辑

#region Splash Screen
public  void  ShowSplash(){
// get the Height & Width of device Screen
float mainSrcWidth = this.View.Bounds.Width; 
float mainSrcHeight = this.View.Bounds.Height;
splashScreen = new UIImageView (UIImage.FromFile ("Images/loadNew1536_2008.png"));
splashScreen.Frame = new RectangleF (0, 0, mainSrcWidth, mainSrcHeight);    
//Start the thread;
ThreadPool.QueueUserWorkItem (delegate {
Load ();
}
)
this.View.AddSubview(splashScreen);
}
#endregion


#region Load() splashscreen
private void Load ()
//Sleep for 3 seconds to simulate a long load.
Thread.Sleep (new TimeSpan (0, 0, 0, 3));
this.BeginInvokeOnMainThread (delegate {
splashScreen.RemoveFromSuperview ();
splashScreen = null;
});
}
#endregion

ShowSplash()方法

的Appdelegate类调用FinishedLaunching方法

答案 3 :(得分:0)

UIActivityIndi​​cators是UIViews,可以像其他任何一样添加。

像这样的东西: [myView addSubview:mySpinner];

或者只是在你的NIB中放一个。

这是另一个答案: How to use activity indicator view on iPhone?