2010-09-25 5 views
1

Les gars, je suis un newbee pour iOS. Je dois créer une mise en page dynamique car l'interface graphique sera générée en fonction des données. J'ai vérifié les références UIView, il semble que la façon standard d'ajouter est comme sous-vue:Quelque chose comme gestionnaire de disposition en Java pour iOS?

CGRect rect = CGRectMake(0, 0, width, height); 
UILabel *label = [[UILabel alloc] initWithFrame: rect]; 
[someView addSubView: label]; 

Mais, peut-être je ne peux pas être sûr que la largeur et la hauteur. En Java, le conteneur utilise le gestionnaire de disposition pour gérer automatiquement la largeur et la hauteur en fonction de certaines règles. Dans iOS, puis-je utiliser quelque chose comme le gestionnaire de disposition en Java?

Merci. Tout indice sera OK.

Répondre

1

Vous pouvez le faire dans iOS, bien qu'il ne s'agisse pas d'un accord un-à-un avec les dispositions Java. Pour avoir l'idée de ce qui est possible, utilisez l'inspecteur de taille dans Interface Builder. Tout ce qui est fait ici, comme permettre à un élément de se développer horizontalement ou de rester à la même distance depuis le haut, peut être fait par programmation. Si une personnalisation supplémentaire est nécessaire, vous pouvez remplacer les hooks d'événement dans votre vue ou votre contrôleur, tels que la méthode -layoutSubviews de UIView.

+0

Merci Peter, je vais vérifier ce que je peux faire -layoutSubviews. – icespace

0

iOS 9 fournit la classe UIStackView qui, en substance est un gestionnaire de mise en page:

La classe UIStackView offre une interface simplifiée pour la pose une collection de vues soit dans une colonne ou une ligne. Les vues en empilement vous permettent de tirer parti de la puissance de la mise en page automatique, en créant des interfaces utilisateur pouvant s'adapter dynamiquement à l'orientation du périphérique, à la taille de l'écran et à tout changement dans l'espace disponible. La vue de la pile gère la disposition de toutes les vues dans sa propriété arrangedSubviews. Ces vues sont disposées le long de l'axe de la vue de la pile, en fonction de leur ordre dans le tableau organiséSubviews . La disposition exacte varie en fonction de l'axe, de la distribution, de l'alignement, de l'espacement et des autres propriétés de la vue de la pile.

UIStackView

Notez que ce n'est pas applicable si vous soutenez iOS 8 qui est encore assez réelle pour le moment.

iOS version statistics

Questions connexes