Domanda

Come dovrei andare sulla creazione di un'interfaccia utente simile a quella (schermata iniziale) Springboard su iPhone? Vorrei una griglia di pulsanti equidistanti con le immagini in cui posso rispondere al rubinetto pulsante.

È il datto una buona misura? Dovrei usare un UIView pianura e posizionare le icone manualmente in drawRect? Esiste un'alternativa che saranno automaticamente in modo uniforme lo spazio i pulsanti, permetterà la riorganizzazione, e regolare il layout secondo l'orientamento iPhone?

Io vengo da un C # / WinForms sfondo e sto solo ora di iniziare lo sviluppo iPhone sul Open toolchain con 2.2.1 intestazioni.

È stato utile?

Soluzione

È necessario aggiungere le icone (che sono UIViews di qualche tipo) come subviews della tua vista "Springboard". non aveva bisogno di disegno personalizzato, e un datto è thh modo sbagliato in assoluto ad andare. Hai solo bisogno di fare i calcoli per posizionare in modo corretto (impostando la loro cornice).

Altri suggerimenti

Ho scritto alcuni esempi di codice per fare qualcosa di simile. Vedere il mio Tiles blog, o semplicemente scaricare il codice: Tiles-v1.0.zip .

Il mio codice crea le icone come strati Core Animation, non come UIViews, ma non dimostrano come rilevare rubinetti e consentire la riorganizzazione delle icone. Essa non gestisce le modifiche di orientamento.

thread vecchio, ma si dovrebbe verificare AQGridView troppo.

@August: Ho seguito il tuo consiglio e ha aggiunto l'UIButtons come subviews del UIView piuttosto che approfondire il datto. Grazie!

Speriamo che il codice qui sotto vi aiuterà per avviare qualcun altro. Ho messo staticamente 4 pulsanti in una griglia. Non dovrebbe essere molto più difficile da inserire qualsiasi numero di pulsanti a seconda del genitore limiti e l'orientamento del UIView.

@implementation IconView
- (id)initWithFrame:(struct CGRect)windowRect{
  self = [super initWithFrame: windowRect];
  if (self != nil){
    for(int i = 0; i < 4; i++){
      buttons[i] = [self buildButton];
      [self addSubview: buttons[i]];
    }
    [self reInit];
  }
  return self;
}
- (UIButton *) buildButton{
  UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];
  [button setBackgroundImage: [[UIImage imageNamed:@"icon.png"] stretchableImageWithLeftCapWidth:60 topCapHeight:0] forState:UIControlStateNormal];
  return [button autorelease];
}
- (void)reInit{
  CGRect rect;
  rect = buttons[0].frame;
  rect.origin = CGPointMake(5, 5);
  buttons[0].frame = rect;

  rect = buttons[1].frame;
  rect.origin = CGPointMake(70, 5);
  buttons[1].frame = rect;

  rect = buttons[2].frame;
  rect.origin = CGPointMake(5, 70);
  buttons[2].frame = rect;

  rect = buttons[3].frame;
  rect.origin = CGPointMake(70, 70);
  buttons[3].frame = rect;
}
@end

implementazione GridView Usa Arijasoft. La sua una libreria statica che consente di generare il tipo di griglia di vista con le parti posteriori di chiamata e metodi delegato per l'ottimizzazione

Come detto sopra utilizzando UIView e facendo matematica al layout i punti di vista è l'opzione più semplice.

controllare il codice di esempio da developer.apple.com https://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007795

A seconda del requisito, potrebbe non essere necessario utilizzare qualsiasi quadro esterno.

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