iOS 6 では、アプリでUITableViewusing を作成しました。QuickDialog普通にスクロールしました。iOS 7 に切り替えたとき、同じUITableViewが正しくスクロールしません。一番下までドラッグできます (スクローラーが圧縮されます) が、放すと一番上に戻ります。viewDidAppear問題を診断するために遊んでいます。以下のコード ブロックを参照してください。
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"Content height: %f",self.quickDialogTableView.contentSize.height);
[self.quickDialogTableView reloadData];
NSLog(@"Content height: %f",self.quickDialogTableView.contentSize.height);
[self.quickDialogTableView layoutIfNeeded];
NSLog(@"Content height: %f",self.quickDialogTableView.contentSize.height);
}
iOS 7 でのこのブロックの出力は次のとおりです。
Content height: 0.000000
Content height: 836.000000
Content height: 0.000000
一方、iOS 6(シミュレータ)でのこのブロックの出力は
Content height: 836.000000
Content height: 836.000000
Content height: 836.000000
また、問題を診断するために、トリガーするボタンを設定しました[self.quickDialogTableView reloadData]。そのボタンが押されるたびに、スクロール動作が正常に機能し始めます。その後、ビューを離れて戻ってくると、スクロールは再び失敗します (ボタンが押されるまで)。reloadData明確にするために、 aを単独で挿入しようとしましたviewWillAppear(つまり、上記のコード ブロックの最後の 2 行を削除しました) が、スクロールが正しくなりません。
問題を修正するためにどこを見ればよいかについての手がかりを探しています。助けてくれてありがとう。