我已经做到了。我的解决方案不是最好的,但效果很好:一切都发生在 tableView:cellForRowAtIndexPath:
1) 对于每个具有 UITextView 的单元格,我都有一个 NSDictionary:我使用特定键将所有 UITextView 保存在 NSDictionary 上的单元格上。
2) 我还有另一个 NSDictionary,其中包含在 tableView:cellForRowAtIndexPath 中创建的 indexPath 对象。如果单元格 A 具有 UITextView A,则它们在 NSDictionaries 中将具有相同的键。
3) 我实现 UITextViewDelegate 并调用 textViewDidBeginEditing:这是我的代码:
- (void)textFieldDidBeginEditing: (UITextField *)textField {
NSArray *keys = [self.answersDic allKeysForObject:textField];
id *key = (id *)[keys objectAtIndex:0];
NSIndexPath *tempIndex=[self.indexPathForViews objectForKey:key];
[tableViewLocal scrollToRowAtIndexPath:tempIndex atScrollPosition:UITableViewScrollPositionTop 动画:YES];
}
观察:
a) answersDic 是保存我的 UITextViews 的 NSDictionary。
b) indexPathForViews 是保存我的 IndexPaths 的 NSDictionary。
c) 这段代码最重要的部分:使视图向上滚动的方法:
[tableViewLocal scrollToRowAtIndexPath:tempIndex atScrollPosition:UITableViewScrollPositionTop 动画:YES];
所以,就是这样。谢谢你的帮助!