Domanda

Sono veramente cercando di fare del mio meglio, ma non posso davvero scoprire cosa sta andando male nel mio codice. Ho fatto un sacco di ricerca, ma immagino che non riesco proprio a comprendere alcuni elementi oggettivi c;)

La mia prima domanda è legata al codice qui sotto:

[window addSubview:tabBarController.view];

UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];

Fa una differenza questo modo:

[window addSubview:defaultImage];

o questo:

[tabBarController.view addSubview:defaultImage];

La mia seconda domanda è sulla creazione di una schermata iniziale. Ho cercato di farlo da me, ma non riesco proprio a capire cosa non funziona (siamo in AppDelegate):

[window addSubview:tabBarController.view];

UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image]; 

[window addSubview:defaultImage];
[window makeKeyAndVisible]; //makes the window visible right ?

UIImage *image2 = [UIImage imageNamed:@"lol2.png"];
UIImageView *pubImage = [[UIImageView alloc] initWithImage:image2];

[UIView setAnimationDelegate:self];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES]; //not sure about the forView:window ...

[defaultImage removeFromSuperview];
[window addSubview:pubImage];

[UIView commitAnimations];

Hmm, immagino poiché ho chiamato finestra "makekeyandvisible" deve essere visibile e l'animazione deve essere mostrato agli utenti ...

Bene, mi manca un passo in quanto non funziona: D

.

Guida di benvenuto,

Gauthier.

È stato utile?

Soluzione

Se si aggiunge un immagine al progetto denominato "Default.png" agirà come una schermata iniziale.

Forzare l'utente a guardare uno schermo più del necessario è in genere considerato cattivo.

Se si vuole aggiungere una comunque utilizzando addSubview:. Dovrebbe funzionare bene, se vuoi animazione che si potrebbe voler esaminare CATransitions invece delle animazioni UIView

Aggiunta la schermata iniziale della finestra o il controllore vista principale dovrebbe apparire lo stesso per l'utente.

Modifica Prova questo frammento - è necessario #include <QuartzCore/QuartzCore.h> e aggiungere il quadro QuartzCore

// Using a CATransition
    CATransition* transition = [CATransition animation];
    transition.delegate = self; // if you set this, implement the method below
    transition.duration = 0.3;
    transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut];
    transition.type = kCATransitionMoveIn;
    transition.subtype = kCATransitionFromRight;
    [self.view.layer addAnimation: transition forKey: nil];
    [self.view addSubview: theNewView];

Aggiungi questo se avete bisogno di fare qualcosa quando la transizione è finita:

#pragma mark -
#pragma mark CAAnimation Delegate Methods
- (void)animationDidStop: (CAAnimation*)theAnimation finished: (BOOL)flag
{
    // Whatever you need to do when the animation is done.
}

Altri suggerimenti

Non sono d'accordo con la prima affermazione in altra risposta, che dice 'Se si aggiunge un immagine al progetto denominato 'Default.png' agirà come una schermata iniziale.'

Default.png è l'immagine di lancio. Il rel Mela HIG distingue specificamente immagine lancio e splash screen mezzo.

In particolare, si dice

  

Evitare di utilizzare l'immagine di lancio come un'opportunità per fornire:

     
      
  • Una “esperienza voce di applicazione”, come una schermata iniziale
  •   
  • Una finestra Informazioni su
  •   
  • elementi di branding, a meno che non sono una parte statica della prima schermata dell'applicazione
  •   

Quindi, per una schermata iniziale, uso NSTimer o di un pulsante per l'utente per chiudere la schermata iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top