我有一個類型爲UIScrollView的詳細頁面。在它上面,我想要一個可選的UIImageView和一個強制性的UITextView。如果沒有圖像可用,則圖像視圖不應占用任何空間。文本視圖的文本可以具有不同的大小。帶滾動內容的UiScrollView
當視圖載入圖像和文本時,我需要能夠滾動瀏覽所有內容。所以圖像從屏幕的頂部滑落。
我只是不能得到這份工作,我覺得它應該很容易。有任何想法嗎?
我有一個類型爲UIScrollView的詳細頁面。在它上面,我想要一個可選的UIImageView和一個強制性的UITextView。如果沒有圖像可用,則圖像視圖不應占用任何空間。文本視圖的文本可以具有不同的大小。帶滾動內容的UiScrollView
當視圖載入圖像和文本時,我需要能夠滾動瀏覽所有內容。所以圖像從屏幕的頂部滑落。
我只是不能得到這份工作,我覺得它應該很容易。有任何想法嗎?
必須調用setContentSize與意見的大小。
CGRect frameOfImage;
CGRect frameOfText;
CGRect frameOfContent;
frameOfImage.origin = CGPointZero;
frameOfImage.size = myImage ? [myImage size] : CGSizeZero;
[myImage setFrame:frameOfImage];
frameOfText.origin.x = 0;
frameOfText.origin.y = frameOfImage.origin.y + frameOfImage.size.height;
frameOfText.size = [myText.text sizeWithFont:myText.font forWidth:myScroll.bounds.width lineBreakMode:myText.lineBreakMode];
[myText setFrame:frameOfText];
frameOfContent = CGRectUnion(frameOfImage , frameOfText);
frameOfContent.size.height += frameOfContent.origin.y;
frameOfContent.size.width += frameOfContent.origin.x;
[myScroll setContextSize:frameOfContent.size];
當你知道是否有圖像或不是你可以做一個自定義的UIScrollView的layoutSubviews或在您的控制器這一切在一次最後一位。
您應該創建自己的視圖,它在UIScrollView之後繼承。
在您的自定義YourScrollView你應該覆蓋
- (void) layoutSubviews;
有計算文字的大小,圖像的尺寸(然後之間的和額外的間距),然後設置contentSize滾動視圖中使用:
[self setContentSize:CGSizeMake(CGRectGetWidth(self.bounds), yourCalculatedHeight)];
希望這有助於 保羅