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 は廃止されました)。