2

iOS7でUITableViewをスクロールする方法を知っている人はいますか?

以前はこのコードを使用していましたが、非常にうまく機能していましたが、contentSize で何かが変更されたようです (textView でこのような問題が発生しました)。

[self.tableView scrollRectToVisible:CGRectMake(0, 0, self.tableView.contentSize.width, self.tableView.contentSize.height) animated:YES]

編集:

私のコードはこのようなものです

viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

キーボードウィルショー:

[self.tableView scrollRectToVisible:CGRectMake(0.0, self.tableView.contentSize.height - 1.0, 1.0, 1.0) animated:NO];

エラー:

contentSize を更新していないので、キーボードが表示されたときのスクロールに気づきませんでした。

解決策(ダニエルの回答に基づく)

CGSize size = self.tableView.contentSize;
size.height += keyboardBounds.size.height;
self.tableView.contentSize = size;

[self.tableView scrollRectToVisible:CGRectMake(0.0, self.tableView.contentSize.height - 1.0, 1.0, 1.0) animated:NO];
4

2 に答える 2

1

理論的には、コードは何もしないはずです。テーブルビューのコンテンツのサイズである四角形にスクロールしています!

基本的にテーブルビュー全体であるため、使用している四角形はすでに表示されているためです。

一番下までスクロールしたい場合は、次のようにします。

[self.tableView scrollRectToVisible:CGRectMake(0.0, 
                                               self.tableView.contentSize.height - 1.0, 
                                               1.0, 
                                               1.0) 
                           animated:YES];
于 2013-09-19T16:06:13.103 に答える