当键盘出现时,它会自动调整您的 UIView 的大小。
它可以与任何类型的 UIView 一起使用。
如果您的视图扩展了 UIScrollView,您需要在调整大小后调整您的 UIScrollView.contentSize。
这受到 Android 中的 android:windowSoftInputMode="adjustResize" 的启发。
首先,选择当键盘出现时将要调整大小的 UIView。
然后,您需要检查您的 Autolayout 配置或 Autoresize 值。
在这里,我将使用 Autoresize,因为它在这种情况下要简单一些。
在配置了 autoresize 之后,当 UIView 调整大小时,我们的 UITextField 将自动定位。
现在我们可以在我们的 UIViewController 中调用 startKeyboardResizerObserver(WithDelegate:)
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.scrollView startKeyboardResizerObserverWithDelegate:self];
}
我们必须记住,在完成键盘操作后停止观察
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.scrollView stopKeyboardResizerObserver];
}
然后,您可以根据需要调整您的视图
- (void)viewWillResize:(UIView *)view;
- (void)viewDidResize:(UIView *)view;
- (void)viewDidTap:(UIView *)view;
例如,我们可以关闭键盘
- (void)viewDidTap:(UIView *)view
{
for (UIView *subview in self.scrollView.subviews)
{
if ([subview isMemberOfClass:[UITextField class]])
[((UITextField *)subview) resignFirstResponder];
}
}
iOS 6.+
TXViewKeyboardResizer 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "TXViewKeyboardResizer"
TXViewKeyboardResizer 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。