2012-07-24 4 views
-1
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

objectiveLabel.text = objectstring; 
objectiveLabel.lineBreakMode = UILineBreakModeWordWrap; 
objectiveLabel.numberOfLines = 0; 
[objectiveLabel sizeToFit]; 

vocabularyLabel.text = vocabularystring; 
vocabularyLabel.lineBreakMode = UILineBreakModeWordWrap; 
vocabularyLabel.numberOfLines = 0; 
[vocabularyLabel sizeToFit]; 


} 

Quelqu'un peut-il me diriger dans la bonne direction sur comment obtenir Label 1 pour pousser ou déplacer Label 2 au lieu de se chevaucher?Arrêter deux UILabel de se chevaucher

+0

contexte? extrait de code? –

+0

Vous trouverez peut-être plus facile de disposer l'interface utilisateur dans Interface Builder. Apple a quelques bons tutoriels à ce sujet. –

Répondre

1

Si vous voulez "pousser ou déplacer" un UILabel, il vous suffit de définir les cadres en conséquence. Alors regardez objectiveLabel.frame, ajoutez le objectiveLabel.frame.origin.x plus objectiveLabel.frame.size.width, et c'est le minimum de ce que vous devez définir vocabularyLabel.frame.origin.x à.

CGSize size1 = [objectstring sizeWithFont:objectiveLabel.font 
         constrainedToSize:objectiveLabel.frame.size 
          lineBreakMode:objectiveLabel.contentMode]; 

CGRect frame2 = vocabularyLabel.frame; 
frame2.origin.x = objectiveLabel.origin.x + size1.width; 
vocabularyLabel.frame = frame2; 

ceci: Si vous voulez vocabularyLabel pour régler la largeur de non seulement la largeur du cadre objectiveLabel, mais en fait à modifier en fonction de objectstring par seront rendus dans objectiveLabel, calculer la taille de la largeur de objectiveLabel ne prendra pas en compte le minimumFontSize des étiquettes, cependant. Mais si le minimumFontSize est de la même taille que la taille de la police, alors vous devriez être en or.

+1

Merci beaucoup cela fonctionne – user1547180

0

Ce que vous voulez est appelé Auto Layout.

+0

Est-ce disponible dans les versions de production actuelles d'iOS? – Rob

Questions connexes