Как добавить UIActivityIndicator на заставку в приложении для iPhone? - PullRequest
2 голосов
/ 19 октября 2010

Как добавить UIActivityIndicator на заставку?

Редактировать: я попробовал следующее

Я создал подкласс UIViewController под названием SplashViewController.и код такой, как показано ниже, но изображение не сохраняется достаточно долго.

Ответы [ 4 ]

3 голосов
/ 19 октября 2010

Если под "заставкой" вы подразумеваете изображение, которое отображается при запуске приложения, ответом является то, что вы не можете.

То, что вы можете сделать, это иметь начальный вид, который включает фоновое изображениеэто выглядит так же, как ваше изображение запуска, а затем добавьте индикатор активности в это представление.Пользователю может показаться, что индикатор активности является «частью» вашего образа запуска.

Хитрость заключается в том, чтобы загрузить исходное перо как можно быстрее (сделать его небольшим и простым), чтобы статические изображения переходилина вид вы можете манипулировать сразу.

1 голос
/ 18 сентября 2012

Привет, Прадип. Я внедряю этот код в monotouch для ios, поэтому этот код поможет вам реализовать вашу логику.

#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 Метод

1 голос
/ 19 октября 2010

Это зависит от того, что вы подразумеваете под заставкой. Если вы имеете в виду изображение, которое впервые отображается при запуске приложения, то у нас сложная ситуация. Это просто статическое изображение (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];
}
0 голосов
/ 19 октября 2010

UIActivityIndicators являются UIViews и могут быть добавлены как любой другой.

что-то вроде: [myView addSubview: mySpinner];

Или просто поместите один из них в свою NIB.

вот еще один ответ: Как использовать представление индикатора активностиiPhone?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...