iOS: UITableView cell上有UItextView之类,需要弹出键盘的 ,该如何调整frame

iOS: UITableView cell上有UItextView之类,需要弹出键盘的 ,该如何调整frame

cell的创建是在单独的类,

我自己的解决方法有两种

  1. 监听键盘通知,然后调整frame
    但是在多个UITextView之类的时候,都使用一个通知,通知的移除的问题(用完一次还要用)

  2. 使用KVO,设置一个变量来监听UItextView的编辑状态.

但是有和1同样的问题.解决方案也有,就是每次之前,移除通知,用完成后,再次添加通知.

3.使用一个代理,

不知道大家有没有什么好的解决方案?

在github上有些开源的例子,很多都是将输入push到到一个单独的页面.

还望多多指教.

阅读 12.2k
4 个回答

去看UITableView的这个方法,另外还有几个类似的

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath
              atScrollPosition:(UITableViewScrollPosition)scrollPosition
                      animated:(BOOL)animated

或者根据键盘高度直接设置contentOffset

浏览问题的时候,既然在这么专业的社区出现广告,有一种淡淡的忧伤。。
言归正传,楼主的问题是不是为了避免键盘把textView给遮住?
如果是这样的话,我会通过uitextview代理begin和end方法来实现,然后去修改self.view的frame.origin.y来实现,让整个整体往上移动或者下降,从而让textView出现在导航和键盘之间的中间位置,当然要加些动画效果。因为键盘的高度是已知的,textView的frame也是知道的,所以要把view往上移动多少是可以计算得出来的。
附上一个Demo地址: http://blog.csdn.net/enuola/article/details/7917221,
希望我的回答对楼主有帮助。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进