TPKeyboardAvoiding 在 iOS 8 下的 UITableView 有个 bug

2015-01-05 02:28:14 +08:00
 yellowV2ex

https://github.com/michaeltyson/TPKeyboardAvoiding
这是一个很常用的,不用写一句代码就可以为有输入框的 scrollView 和 tableView 自动处理键盘弹出遮挡的问题。

今天收到一个奇怪的bug,因为之前 tableView 一直也没有超出屏幕,所以发现不了,超出屏幕之后,当键盘弹出来,再缩回去时,会调N次 setContentInset ,并且有其中一次会给 contentInset 的 bottom 一个负值,导致无法上拉看到下面的内容。iOS7和之前版本是正常的。

debug了好久才找出来,解决方法在 TPKeyboardAvoidingTableView.m 加个判断即可:

-(void)setContentInset:(UIEdgeInsets)contentInset {
    if(contentInset.bottom < 0)return;
    [super setContentInset:contentInset];
}

去作者的github,发觉万年没人管,就找个可以搜到的地方写出来留意坑。

3442 次点击
所在节点    iDev
1 条回复
icodesign
2015-01-05 10:22:47 +08:00
IQKeyboardManager 用的比较多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/159246

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX