2016-12-01 6 views
0

Ich bin neu in iOS und ich habe Probleme, UILabel dynamisch zu erstellen. Ich muss seine Höhe und die Y-Position gemäß Daten vom Webservice ändern. Mein Code ist wie dieserWie UILabel Höhe dynamisch in Objective c festlegen?

NSMutableArray *remarkarray =[[NSMutableArray alloc] init]; 
      remarkarray=[responsedict valueForKey:@"Key"]; 
      NSString *RemarkString=[NSString stringWithFormat:@"%@",[remarkarray objectAtIndex:0]]; 
      remarklbl.text=RemarkString; 
      remarklbl.numberOfLines=0; 
      [remarklbl sizeToFit]; 

ich UILabel wie diese

enter image description here

Aber seine Y-Position ist fix zu schaffen haben. Ich muss ein UILabel erstellen, in dem ich die Höhe und die Y-Position entsprechend Text darin ändern kann. Ähnliche

enter image description here

Vielen Dank im Voraus!

+0

kann u elobrate die ich die Höhe ändern kann und die Y-Position nach Text in ihm. –

+0

Sie können Autolayout verwenden und Einschränkungen zwischen den Zeilen erstellen, um einen festen Abstand zwischen Beschriftungen zu gewährleisten, unabhängig davon, wie viele Zeilen die Beschriftungen auf –

+0

Sie die Beschriftungshöhe basierend auf Text –

Antwort

2

Sie es, indem er erklärt zwei Etiketten in der Storyboard sehr leicht tun können.

Hier sind die Schritte.

  1. Ziehe zwei UILabels in deinen viewController und wähle die erste aus und setze Beschränkungen wie unten abgebildet.

enter image description here

  1. das zweite Etikett auswählen und folgende Einschränkungen hinzufügen.

enter image description here

  1. beiden Etiketten auswählen und einstellen numberOfLines auf Null.

Jetzt können Sie Text dynamisch aus Code festlegen.

Adding text from code... Output here..

+0

Wie ist die Beschriftung in dieser Antwort dynamisch? – User511

+0

Bcoz Ich setze numberOfLine auf Null und habe die Höhe des Labels nicht festgelegt. So wird es automatisch entsprechend dem Inhalt des Etiketts gesetzt. –

+0

Es wird automatisch die Höhe des Etiketts und nicht die Dynamik-Etiketten eingestellt. – User511

0

Alles, was Sie tun müssen, ist:

float x=10.0,y=10.0,height=40; 
float verticalSpace=20.0; 


for (int i = 0; i < 10; i++) 
{ 
    UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(x, y,50,height)]; 
    label.text = @"dummy text";// It could be from array as well if you want to add different text for each label. Eg: label.text = [arr objectAtIndex:i]; 
    [self.view addSubview:label]; 
    y = y +height+ verticalSpace; 

} 
+0

wo ist y Position und Höhe ändert sich Code –

+0

Ich habe meine Antwort aktualisiert. – User511

0

Sie könnten mit Schlüsselwort "Auto Layout dynamische Etikettenhöhe" suchen um

Verwandte Themen