2016-07-22 13 views
-1

私はxamarin studioで、コードだけで、ストーリーボードやデザイナーなしでは、C#コードでiOSアプリケーションを開発しています。xamarin C#スクロールテキストのUIViewController

私は長いテキスト、UIViewControllerより長いUILabel(またはUITextView)を配置する必要があります。例えば が、これは長いテキストと私UILabelです:

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; 

このテキストは、長いデバイスの画面になりますので、私はそれをスクロールする必要があります。 私はいくつかのソリューションを試しましたが、何も機能していません。

+0

何を試しましたか?最初の勧告は、ラベルをUIScrollViewに挿入することです。使用方法のドキュメントは、https://developer.xamarin.com/recipes/ios/content_controls/scroll_view/use_a_scrollview/ – Bearcat9425

答えて

1

問題は、UITextView、1050に設定した高さです。これは画面の高さよりも高く、すべてのテキストを保持するのに十分な場合はスクロールが必要ありません。しかし、それは画面よりも高いので、UITextViewの大部分がスクリーン外にあるので、すべてのテキストを見ることはできません。あなたがUITextViewの頂点を持っているので、私はscreen (or view) height - 340と思っていますが、それはすべてを保持するために必要な高さではないと思う、テキストビューが画面上で占有する高さの高さに設定しますテキストのUITextViewは、すべてのテキストを保持するには小さすぎる場合にのみ、スクロール可能です。

このUITextViewがビューコントローラのメインビューにあるかどうか、またはサブビュー内にあるかどうかは、コードからわかりません。メインビューの場合は、試してみてください。

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

サブビューでいる場合、またcontainerView.Bounds.Height - 340

View.Bounds.Height - 340を置き換えるあなたは横向きをサポートする必要がある場合、私はFlexibleHeightフラグを追加することをお勧めします:

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

このフラグがない場合、UITextViewの高さが画面上に完全に表示されるには高すぎるため、ランドスケープに回転すると下部にスクロールできなくなります。

こちらがお役に立てば幸いです。