0

UIImageView と UILabel がある UIScrollView があり、どちらも sizeToFit です。UIImageView と UILabel の高さに基づいて UIScrollView の自動サイズ変更の高さを設定するにはどうすればよいですか?

4

4 に答える 4

0

InterfaceBuilderで設定できるそのようなスイッチはありません。UITableViewに次のデリゲートメソッドを実装する必要があります。

– tableView:heightForRowAtIndexPath:

メソッドのドキュメントはここにあります:

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

この方法では、それぞれの行に含まれる要素のフレームにアクセスする必要があります。あなたの場合、UILabelとUIImageViewを使用して、フレームからそれらを組み合わせた高さを計算します。

お役に立てれば。

于 2012-05-29T23:02:08.263 に答える
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);

これが機能するかどうかはわかりませんが、解決策です。

この助けを願っています。

于 2012-05-29T23:11:15.817 に答える
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);

これがお役に立てば幸いです....

于 2012-06-11T17:55:30.463 に答える
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);

これがあなたを助けることを願っています!

于 2012-06-11T15:15:06.790 に答える