2009-09-16 5 views
2

내 프로젝트에서 Default.png 파일을 가지고 있으므로 내 응용 프로그램이 Default.png 파일을 시작할 때마다로드됩니다. 내 앱이 시작할 때 (앱 실행) 서버에서 데이터를 가져 오는 동안 Default.png 파일이로드되는 동안 활동 표시기를 표시하려고합니다. 한 번에 두 프로세스를 모두 활성화 할 수 있습니까? 즉, Default.png를 표시하고 시작 중에 활동 표시기를 활성화 할 수 있습니까? 하지만 'ActivityDidFinishLaunching'에 활동 표시기 코드를 넣으려고했지만 Default.png 파일을 표시 할 때 활동 표시기가 표시되지 않습니다. 하지만 내가 가진 활동 코드가 다른 화면에서도 잘 작동하고 있다고 확신합니다. 문제는 앱을 실행하는 동안에 만 발생합니다.iPhone-SDK : 시작하는 동안 활동 표시기?

누군가 공유 할 수 있습니까?

감사합니다.

클레이브/

+0

아직 질문하지 않았습니까? http://stackoverflow.com/questions/1404463/iphone-sdk-avoid-blank-screen-while-launching-my-application –

답변

4

Default.png 이미지에는 애니메이션을 사용할 수 없습니다. 가능한 한 빨리보기/컨트롤러 (활동 표시기 포함)로 대체해야합니다. 해당 컨트롤러를 표시 한 후, 데이터 및 가능한 다른 컨트롤러 (스레드에서)를로드하십시오.

+0

모두에게 고마워. 나는 해결했다. –

0

내 앱에서 내가 수행하는 작업은 화면을 덮는 Default.png 이미지로 이미지 뷰를 즉시로드합니다. 백그라운드 스레드에서 서버 작업을 수행하는 동안 진행률 표시기를 이미지 뷰 위에 추가 할 수 있습니다.

항상은입니다.이 메서드에는 제한 시간이 있기 때문에 applicationDidLaunch 메서드에서 net 활동을 피하십시오. 반환하지 않으면 Apple에서 응용 프로그램을 종료합니다. 사용자가 가장자리에 있고 서버 이동에 30 초가 걸리므로 앱이 사용자에게 충돌 한 것처럼 보이기 때문에 이는 중요합니다.

백그라운드 스레드에서 net 작업을 수행하고 applicationDidLaunch를 반환하면 Apple에서 앱을 종료하지 않게하고 새 데이터가 들어 오기 전에 사용자가 앱을 사용할 수있게 할 수 있습니다. 앱이 더 빨리 시작되는 것으로 보입니다.

0

이 메서드는 제한 시간이 있기 때문에 항상 applicationDidLaunch 메서드에서 net 활동을 피해야합니다. 반환하지 않으면 Apple에서 응용 프로그램을 종료합니다. 사용자가 가장자리에 있고 서버 이동에 30 초가 걸리므로 앱이 사용자에게 충돌 한 것처럼 보이기 때문에 이는 중요합니다.

XMLPraser를 applicationDidLaunch에 넣으면 안된다고 생각하십니까? 그것이 어떻게 작동하는지

NSURL *url = [[NSURL alloc] initWithString:@"http://sites.google.com/site/iphonesdktutorials/xml/Books.xml"]; 
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 

//Initialize the delegate. 
XMLParser *parser = [[XMLParser alloc] initXMLParser]; 

//Set delegate 
[xmlParser setDelegate:parser]; 

//Start parsing the XML file. 
BOOL success = [xmlParser parse]; 

if(success) 
    NSLog(@"No Errors"); 
else 
    NSLog(@"Error Error Error!!!"); 
0

가 그이다 :
이 (엑스 코드 버전에 제작 4.2.1)

그래서 ...

AppDelegate.h이 추가 :

@property (nonatomic, strong) UIImageView *splashView; 

AppDelegate.m에 다음을 추가하십시오 :

pa의 맨 위에 cours의 ge는 splashView를 합성합니다;
: 그리고

- (void) splashFade 
{ 
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)]; 
    splashView.image = [UIImage imageNamed:@"Default.png"]; 
    [_window addSubview:splashView]; 
    [_window bringSubviewToFront:splashView]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:2.0]; 
    [UIView setAnimationDelay:2.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:_window cache:YES]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)]; 
    splashView.alpha = 0.0; 
    [UIView commitAnimations]; 

    //Create and add the Activity Indicator to splashView 
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
    activityIndicator.alpha = 1.0; 
    activityIndicator.center = CGPointMake(160, 360); 
    activityIndicator.hidesWhenStopped = NO; 
    [splashView addSubview:activityIndicator]; 
    [activityIndicator startAnimating]; 
} 

- (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 
{ 
    [splashView removeFromSuperview]; 
} 

[UIView의 setAnimationDelay : 2.5]는 splashView가 선택한 지연 시간에 의해 앞에 얼마나 오래 할 책임이있다.

하면에 X/Y의 nubmers 변경하여 인디케이터의 위치를 ​​변경할 수
activityIndicator.center CGPointMake = (160, 360); 메도에서 마침내

:

[self performSelector:@selector(splashFade) withObject:nil]; 

을 그리고 거기 당신은
:)이 도움이 희망 이동 :

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

그냥이를 추가합니다.

좋은 프로그래밍 되세요 ....

관련 문제