2016-07-22 5 views
-1

Ich entwickle eine iOS-App mit Xamarin Studio, nur mit Code und ohne Storyboard oder Designer, nur mit C# -Code.xamarin C# UIViewController mit Lauftext

Ich muss ein UILabel (oder UITextView) mit einem langen Text, länger als der UIViewController. Zum Beispiel, das ist meine UILabel mit dem Langtext:

string textrStr = ""; 
     var descStrLabel = new UITextView(new CGRect(0, 340, w, 1050)); 
     descStrLabel.BackgroundColor = UIColor.Black; 
     descStrLabel.Font = UIFont.SystemFontOfSize(10.0f); 
     descStrLabel.TextAlignment = UITextAlignment.Justified; 
     descStrLabel.TextColor = UIColor.LightGray; 
     textrStr += @"È universalmente riconosciuto che un lettore che osserva il layout di una pagina viene distratto dal contenuto testuale se questo è leggibile. Lo scopo dell’utilizzo del Lorem Ipsum è che offre una normale distribuzione delle lettere (al contrario di quanto avviene se si utilizzano brevi frasi ripetute, ad esempio “testo qui”), apparendo come un normale blocco di testo leggibile. Molti software di impaginazione e di web design utilizzano Lorem Ipsum come testo modello. Molte versioni del testo sono state prodotte negli anni, a volte casualmente, a volte di proposito (ad esempio inserendo passaggi ironici)."; 

     descStrLabel.Text = textrStr; 
     descStrLabel.TextContainer.LineBreakMode = UILineBreakMode.WordWrap; 
     descStrLabel.AutoresizingMask = UIViewAutoresizing.FlexibleWidth; 

Dieser Text länger wird dann das Gerät Bildschirm, so brauche ich es zu blättern. Ich habe mehrere Lösungen versucht, aber nichts funktioniert.

+0

Was hast du probiert? Die erste Empfehlung wäre, das Label in ein UIScrollView einzufügen. Die Verwendungsdokumentation finden Sie hier https://developer.xamarin.com/recipes/ios/content_controls/scroll_view/use_a_scrollview/ – Bearcat9425

Antwort

1

Das Problem ist die Höhe, die Sie für UITextView 1050 eingestellt haben. Dies ist höher als die Bildschirmhöhe und wenn es hoch genug ist, um den gesamten Text zu halten, dann ist kein Scrollen erforderlich. Aber da es höher als der Bildschirm ist, werden Sie nicht den gesamten Text sehen, da die meisten UITextView selbst außerhalb des Bildschirms sind. Stellen Sie die Höhe auf die Höhe ein, die die Textansicht auf dem Bildschirm einnehmen soll, was ich als screen (or view) height - 340 annehmen würde, da 340 an der Spitze der UITextView steht und nicht die Höhe, in der sie alle halten soll des Textes. Eine UITextView Ist nur dann scrollbar, wenn sie zu klein ist, um den gesamten Text aufzunehmen.

Ich kann nicht aus Ihrem Code sehen, ob Sie dieses UITextView in der Hauptansicht eines View-Controllers haben oder ob es in einer Unteransicht ist. Wenn in der Hauptansicht, versuchen:

var descStrLabel = new UITextView(new CGRect(0, 340, w, View.Bounds.Height - 340)); 

Wenn in einem Subview, ersetzen View.Bounds.Height - 340 mit containerView.Bounds.Height - 340

Auch wenn Sie Querformat unterstützen müssen, würde ich empfehlen, eine FlexibleHeight Flagge und fügte hinzu:

descStrLabel.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; 

Ohne diese Markierung können Sie beim Drehen in die Landschaft nicht mehr ganz nach unten scrollen, da die Höhe der UITextView jetzt zu hoch ist, um vollständig auf dem Bildschirm angezeigt zu werden.

Ich hoffe, das hilft!