UITableView 非全屏显示,并且 Cell 内部的 UITextField 成为第一响应者时,IQKeyboardManager 尝试调整视图以确保 UITextField 始终可见。但在 iOS11 及以上版本,这可能会导致定位不准或抖动的现象。定位不准可能表现为 UITextField 被遮挡或位置偏移,而抖动则表现为 UITextField 在键盘弹出时被遮挡而后又恢复的行为。

解决方法

添加以下代码

#import "IQUIScrollView+Additions.h"

self.tableView.shouldIgnoreScrollingAdjustment = YES;
self.tableView.shouldRestoreScrollViewContentOffset = YES;
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;