2

iOS6 と Xcode 4.5.2 を使用しています。ストーリーボードを使用して、次の図を作成しました。

ここに画像の説明を入力

コードフローで現在行っていることは次のとおりです。

1) .h ファイルで UITableView オブジェクトを次のように宣言します。

@property (weak, nonatomic) IBOutlet UITableView *tablePOI;

2) Web リクエストからのデータを UITableView に入力するため、UITableView フレームの高さを事前に知りません。ストーリーボードでは、UITableView フレームの高さを 260f に初期化します。

3) viewDidLoad 関数内で Web データをフェッチしてから、UITableView に入力し、新しいフレームと contentSize を設定します。この後、UIScrollView コンポーネントの contentSize を次のように設定します。

[self.tablePOI setFrame:CGRectMake(0, 100, 320, 800)];
[self.tablePOI setContentSize:CGSizeMake(320, 800)];
[self.scrollView setContentSize:CGSizeMake(320, 800)];

問題は、UITableView が以前にストーリーボードに初期化された高さ (260f) にカットされているため、UIScrollView はスクロールせず、バウンスするだけです。

動的な高さを持つ UITableView コンポーネントを使用する場合、スクロールを取得するにはどうすればよいですか?

PS。ストーリーボードを使用せずに UITableView コンポーネントをコードで生成することも考えましたが、このアプローチでは UITableView を保持として宣言し、メモリ割り当てを管理する必要があります。私は本当にこのようにしたくありません (dealloc は廃止されました)。

4

0 に答える 0