2012-05-29 108 views
0

我有一個UIScrollView,其中有一個UIImageView和一個UILabel,它們都是sizeToFit。我如何在UIImageView和UILabel的高度基礎上設置UIScrollView自動調整的高度?UIScrollView彈性高度

回答

0

您可以在界面構建器中設置這樣的開關。你將不得不執行你的UITableView以下的委託方法:

- 的tableView:heightForRowAtIndexPath:

的方法

文檔可以在這裏找到:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html

在這種方法中,你將有訪問相應行所包含元素的框架。在你的情況下,UILabel和UIImageView並計算它們的幀的組合高度。

希望這會有所幫助。

+0

嗯,其實這是UIScrollView的。 :-) – 2012-05-29 23:03:39

+0

阿爾我讀錯了,我的道歉。 –

0

不要在UIScrollView每個子視圖循環,並獲得每一個項目的高度,然後,將其設置爲ScrollView,如:

int height = 0; 
for(UIView *subview in [yourScrollView subviews]) { 
    height += subview.frame.size.height; 
} 
yourScrollView.contentSize = CGRectMake(yourScrollView.frame.origin.x, yourScrollView.frame.origin.y, yourScrollView.frame.size.width, height); 

我不知道這會工作,但它是一個解。

希望得到這個幫助。

+0

這項工作假設UIImageView位於UILabel之上,反之亦然 - 如果它們彼此相鄰,則循環查找最高的項目並將其用作高度。 :) – WendiKidd

+0

這就是我的想法。我會盡力找到一個解決方案。 :-) – 2012-05-29 23:55:31

0

您可以通過下面的代碼

float height = 0.0; 
for(UIView *subview in [yourScrollView subviews]) { 
    if(height < (subview.frame.origin.y + subview.frame.size.height)) 
     height = subview.frame.origin.y + subview.frame.size.height; 
} 
yourScrollView.contentSize = CGRectMake(yourScrollView.frame.origin.x, yourScrollView.frame.origin.y, yourScrollView.frame.size.width, height); 

希望這將幫助您找到滾動視圖的高度!

0

yourLabel.frame = CGRectMake(0, 200, yourImageView.height, yourLabel.frame.size.height); 
float heightOfScrollView = yourLabel.frame.origin.y + yourLabel.frame.size.height + 10; 
scrView.contentSize = CGSizeMake(320, heightOfScrollView); 

希望這有助於你....