當內容大小動態變化時,我將如何設置scrollview
的內容大小。我已將所有內容添加到名爲「contentView」的UIView
,然後嘗試調用setcontentsize
(如下所示),但這不會導致滾動。動態內容的滾動視圖setcontentsize
sudo'ish代碼:
[scrollView setContentSize: contentView.frame.size];
也許 「內容查看」 不是伸展它的大小以適合其子?
任何幫助,將不勝感激。
當內容大小動態變化時,我將如何設置scrollview
的內容大小。我已將所有內容添加到名爲「contentView」的UIView
,然後嘗試調用setcontentsize
(如下所示),但這不會導致滾動。動態內容的滾動視圖setcontentsize
sudo'ish代碼:
[scrollView setContentSize: contentView.frame.size];
也許 「內容查看」 不是伸展它的大小以適合其子?
任何幫助,將不勝感激。
UIView
或UIScrollView
將不會基於內容自動拉伸。您必須手動計算框架並將其相應地放置在滾動視圖中,然後將滾動視圖的contentSize
設置爲可容納所有子視圖的最大可能大小。
當你添加東西到你的contentView調用[contentView sizeToFit]
,然後內容視圖將拉伸以適應其子視圖,然後,你發佈的代碼將工作。
這取決於您要動態添加的內容類型。假設您有大量的文本數據要顯示,然後使用UITextView
,並且由於它是UIScrollView
的子類,所以在分配文本內容時,可以獲取TextView的setContentSize。基於此,您可以設置UIScrollView
的總大小。
float yPoint = 0.0f;
UIScrollView *myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, yPoint, 320.0f, 400.0f)];
UITextView *calculatorTextView = [[UITextView alloc] init];
calculatorTextView.text = @"My looong content text ..... this has a dynamic content";
[calculatorTextView sizeToFit];
yPoint = yPoint + calculatorTextView.contentSize.height; // Bingo, we have the new yPoiny now to start the next component.
//現在你知道你的文字和地點將結束的高度。所以你可以創建一個標籤或其他TextView並在那裏顯示你的文本。您可以將這些組件作爲子視圖添加到滾動視圖中。
UITextView *myDisplayContent = [[UITextView alloc] initWithFrame:CGRectMake(0.0f, yPoint, 300.f, calculatorTextView.contentSize.height)];
myDisplayContent.text = @"My lengthy text ....";
[myScrollView addSubview:myDisplayContent];
//最後,設定「myScrollView」的內容的大小的顯示區域的總長度。
[myScrollView setContentSize:yPoint + heightOfLastComponent];
這適用於我。