最近在iOS中用到bubble chat listview,找了个比较有名气的lib(MessagesTableViewController)=>https://github.com/jessesquires/MessagesTableViewController 粗略剖析了一下。
其中比较关键的一个功能是当向下拖动UITableView时,手指拖到键盘区时,需要让输入框 resignFirstResponder。作者是通过检测UITableView的内置的panGestureRecognizer的location和velocity来实现的。比较奇怪的是关于键盘frame的获取,作者不是通过UIKeyboardxxxxNotification中的UIKeyboardFrameEndUserInfoKey来获取,而是通过 self.inputAccessoryView = [[UIView alloc] init]
和 self.keyboard = self.inputAccessoryView.superview;MessagesTableViewController