2013-04-20 68 views
1

iOS爲一個學校項目,我用標籤(x和y位置)動態填充我的UITextView。但由於它有很多項目,項目的總長度比iPhone屏幕高度大。我預計會出現一個自動垂直滾動條,但它不會,因此用戶無法繼續閱讀其餘的文章。如何向文本視圖添加滾動條?

我該如何添加它?

解決方案感謝@elitalon:

scrollTextView.ContentSize = new SizeF(scrollTextView.Frame.Width, sizeH); // Works 

代替

scrollTextView.ContentSize.Height = sizeH; // Doesn't work 
+2

您將使用標籤查看文本視圖嗎?你的意思是你添加標籤到UIScrollView? – 2013-04-20 14:15:33

+1

你能提供更多關於你的問題的細節嗎?只要輸入的**文本不符合框架,「UITextView」對象就會自動顯示滾動條。如果您要添加其他任何東西,您需要動態計算高度 – elitalon 2013-04-20 14:29:45

+0

我將UILabels動態添加到textview,以便使用x和y座標來定位標籤並設置標籤的高度和寬度。那麼在這種情況下我該如何讓滾動顯示呢? 0x7fffffff你會將你的<:)這是一個UITextView – 2013-04-20 15:18:56

回答

1

也許我不明白你想實現什麼,但我認爲這個問題是的濫用UITextView類。作爲UITextView文件說:

的UITextView的類實現的行爲可滾動,多行文本區域」

所以最好不要添加UILabel對象爲UITextView相反,我會創造一個UILabel併爲每篇文章一個UITextView要顯示:

UILabel *article1Label = [[UILabel alloc] initWithFrame:label1Frame]; 
UITextView *article1Text = [[UITextView alloc] initWithFrame:text1Frame]; 

UILabel *article2Label = [[UILabel alloc] initWithFrame:label2Frame]; 
UITextView *article2Text = [[UITextView alloc] initWithFrame:text2Frame]; 

... 

如果您希望用戶滾動並閱讀所有你可以將所有這些子視圖添加到UIScrollView對象的文章:

UIScrollView *articlesScrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame]; 
[articlesScrollView addSubview:article1Label]; 
[articlesScrollView addSubview:article1Text]; 
[articlesScrollView addSubview:article2Label]; 
[articlesScrollView addSubview:article2Text]; 

最後,通過添加子視圖的所有高度計算UIScrollView內容大小。例如:

CGFloat totalHeight = article1Text.frame.size.height + article2Text.frame.size.height; 
articleScrollView.contentSize = { 
    .width = articleScrollView.bounds.size.width, 
    .height = totalHeight 
}; 
+0

elitalon我像你說的那樣添加它(用xamarin代碼是C#):scrollTextView.ContentSize.Height = sizeH;其中sizeH是所有標籤高度的浮點數,我沒有看到每個項目需要使用uitextview,而只使用帶有名爲scrollTextView的UIScrollView的標籤。 (將變量鏈接到故事板上的滾動視圖)。現在滾動條仍然不會出現在iPhone模擬器中?你知道爲什麼嗎? – 2013-04-20 16:39:28

+0

然後發佈你的源代碼,因爲試圖用這麼少的信息來解決你的問題有點困難 – elitalon 2013-04-20 16:54:21

+0

我試着這樣:'code'RectangleF rect = scrollTextView.Frame; \t \t \t rect.Size.Height = sizeH; \t \t \t scrollTextView.Frame = rect; \t \t \t Console.WriteLine(scrollTextView.Frame.Size.Height);'code'但發現了一些奇怪的高度保持在432,而sizeH = 770 – 2013-04-20 16:55:09