2017-05-23 1 views
1

Je souhaite définir UILabel avec multiline par programme dans ios.Xamarin.Programatically Multiline ne fonctionne pas sous iOS

J'ai créé UILabel de cette façon et l'ajouter à ma vue ci-dessous est le code.

code:

public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 


      var label = new UILabel(); 
      label.Frame = new CoreGraphics.CGRect(10, 10, secondContainer.Frame.Size.Width - 20, 20); 
      label.Text = "First Label First Label First Label First Label First Label First Label"; 
      label.Lines = 0; 
      label.LineBreakMode = UILineBreakMode.WordWrap; 
      secondContainer.AddSubview(label); 
      secondContainer.AddConstraint(NSLayoutConstraint.Create(label, NSLayoutAttribute.Height, NSLayoutRelation.GreaterThanOrEqual, null, NSLayoutAttribute.NoAttribute, 0, 20)); 

      secondContainerHeight.Constant = label.Frame.Size.Height + 20; 
     } 

mais mon label ne prend pas plus d'une ligne.

Note:

cette propriété 2 ne fonctionne pas bien

label.Lines = 0; 
label.LineBreakMode = UILineBreakMode.WordWrap; 

J'ai essayé recherche sur google et SO, mais rien ne me aider.

Toute aide sera appréciée.

Répondre

3

Assurez-vous que la largeur UILabel ne dispose pas de suffisamment d'espace et qu'elle doit donc "croître".

utiliser à leur tour SizeToFit() dans votre UILabel, quelque chose comme:

label.Lines = 0; 
label.SizeToFit(); 
label.LineBreakMode = UILineBreakMode.WordWrap; 

Hope this helps!

+0

Merci @apineda 'SizeToFit' travaille pour moi. – Ironman