2011-06-30 3 views
0

Je suis encore assez nouveau avec la façon dont la disposition se comporte dans Cocoa. Dites que j'ai un UIView avec UIActivityIndicator et UILabel comme sous-vues. Le cadre UILabel est aussi grand que le UIView et il a son ensemble textAlignment au centre. Le texte dit "Chargement xxx ...", où xxx est une chaîne qui peut changer en fonction du contexte.Comportement de mise en page UIView

Maintenant, comment faire en sorte que mon indicateur UIActivityIndicator soit toujours placé exactement à gauche de l'étiquette, quelle que soit la longueur du texte? Rappelez-vous que le texte est aligné au centre.

Plz faites moi savoir si vous avez besoin de plus de clarifications.

+0

Est-ce que la chaîne générée toujours 3 caractères? –

+0

@Chance Non, c'est variable. – pixelfreak

Répondre

1

Une façon simple de mettre en œuvre c'est de calculer la largeur du texte en vous UILabel, puis utiliser les résultats pour positionner votre UIActivityIndicator

// width & height of your activity indicator 
CGFloat wai = 20, hai = 20; 
CGSize textSize = [[label text] sizeWithFont:[label font]]; 
CGFloat w = textSize.width; 
CGFloat ax = ((WIDTH_OF_THE_DISPLAY - w)/2) - wai); 
activityIndicator.frame = CGRectMake(ax, (HEIGHT_OF_DISPLAY- hai) /2, wai, hai); 
+0

Merci @Armentage! Donc, je suppose que si le texte change, je vais devoir recalculer et repositionner? Je me demandais s'il y avait un moyen plus automatisé. – pixelfreak

+0

Dans UIKit, pas. Cependant, vous pouvez redimensionner l'étiquette "grand" et centrer le texte dans l'étiquette pour un effet similaire qui, à tout le moins, ne fera pas de grosses images comiques. –

+0

@Yann, je ne vous comprends pas. Comment cela ferait-il coller l'indicateur à gauche du texte? – pixelfreak

Questions connexes