如何在输入UITextView时向上滚动?

时间:2010-07-04 10:44:30

标签: iphone uitextview

我有一个UITextView包含在UITableViewCell中。最初显示视图时布局是正确的,但是一旦我点击UITextView,它就不会自动向上滚动,整个UITextView变得不可见。

此图像是UITextView未激活的时间:

http://img13.imageshack.us/img13/3894/unloaded.png

这是当我点击UITextView使其激活时:

img337.imageshack.us/img337/2583/loaded.png(在链接之前输入“http://”,我不能发布多个超链接)

我希望带有UITextView的单元格向上滚动。我怎样才能做到这一点?

任何建议都表示赞赏。

Julio Cezar

2 个答案:

答案 0 :(得分:0)

最简单的方法是为要移动的项目创建一个IBOutlet,然后在选择文本字段时在代码中执行类似的操作:

myTextView.center.y = 200或您认为合适的y值。

答案 1 :(得分:0)

我已经做到了。我的解决方案不是最好的,但效果很好:所有事情都发生在tableView:cellForRowAtIndexPath:

1)对于每个具有UITextView的单元格,我都有一个NSDictionary:我使用特定的密钥在NSDictionary的单元格上保存所有的UITextView。

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 animated:YES];

}

意见:

a)answersDic是保存我的UITextViews的NSDictionary。

b)indexPathForViews是保存我的IndexPaths的NSDictionary。

c)此代码中最重要的部分:该方法使视图向上滚动:

[tableViewLocal scrollToRowAtIndexPath:tempIndex atScrollPosition:UITableViewScrollPositionTop animated:YES];

所以,就是这样。谢谢你的帮助!