Question

Comment dois-je aller sur la création d'une interface utilisateur similaire au Tremplin (écran d'accueil) sur l'iPhone? Je voudrais une grille de boutons régulièrement espacés avec des images où je peux répondre à la touche tap.

Le uitable un bon ajustement? Dois-je utiliser un UIView simple et placer les icônes manuellement drawRect? Y at-il une alternative qui place automatiquement de façon uniforme les boutons, permettent une réorganisation, et d'ajuster la mise en page en fonction de l'orientation iPhone?

Je viens d'un C # / Winforms fond et je suis tout à l'heure commencer le développement de l'iPhone sur l'ensemble d'outils Ouvrir avec 2.2.1 en-têtes.

Était-ce utile?

La solution

Vous devez ajouter vos icônes (qui sont UIViews de quelque sorte) que subviews de votre point de vue « Tremplin ». Aucun dessin personnalisé nécessaire, et un uitable est une façon de thh mal absolu d'aller. Vous avez juste besoin de faire le calcul pour les placer correctement (en définissant leur cadre).

Autres conseils

J'ai écrit quelques exemples de code pour faire quelque chose comme ça. Voir mon Tiles entrée de blog, ou tout simplement télécharger le Code: Tiles-v1.0.zip .

Mon code crée les icônes comme couches de base, animation non comme UIViews, mais ne démontre comment détecter les robinets et permettre une réorganisation des icônes. Il ne gère pas le changement d'orientation.

fil vieux, mais vous devriez consulter AQGridView aussi.

@August: J'ai pris vos conseils et a ajouté les UIButtons comme subviews du UIView plutôt que de regarder plus loin dans le uitable. Merci!

Si tout va bien le code ci-dessous vous aidera à relancer quelqu'un d'autre. J'ai statiquement placé 4 boutons dans une grille. Il ne devrait pas être beaucoup plus difficile à placer un certain nombre de boutons en fonction du parent des limites et l'orientation de 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

Utiliser la mise en œuvre de GRIDVIEW de Arijasoft. Sa bibliothèque statique qui vous permet de générer le type d'affichage de la grille avec le dos d'appel et les méthodes de délégué pour l'optimisation

Comme indiqué ci-dessus en utilisant UIView et faire des calculs pour la mise en page des vues est l'option la plus facile.

vérifier le code d'échantillon de developer.apple.com https://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007795

En fonction de vos besoins, vous pourriez ne pas avoir besoin d'utiliser un cadre extérieur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top