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

从理论上讲,您的代码不应该做任何事情。您正在滚动到一个矩形,它是 tableview 内容的大小!

因为您使用的矩形已经可见,因为它基本上是整个表格视图。

如果你想滚动到底部,你应该这样做:

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

对于 TableView 有不同的滚动方法

[self.tableView scrollToRowAtIndexPath:desireRowIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

要查看有关此的更多详细信息,请查看

于 2015-01-03T22:40:57.327 回答