iOS 零行代码实现键盘自适应之(IQKeyboardManager)
一、主要特点
无需你输入任何代码,不需要额外的设置要求。使用IQKeyboardManager你只需要添加源文件到你的项目。
二、 IQKeyboardManager 支持 CocoaPods
1.使用CocoaPods管理第三方类库 IQKeyboardManager
pod ‘IQKeyboardManager’
2.导入头文件(这步可省略)
#import "IQKeyboardManager.h"
3.如果你不使用storyboard或xib创造你的视图。你需要重写-(void)UIViewController loadview方法,需要设置一个UIScrollView实例self.view。
-(void)loadView
{
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.view = scrollView;
}
4.看效果当键盘遮挡输入文本框的时候,自动上移View,使被遮挡的部分自动处于键盘的上方。
5.在键盘上会自动添加一个工具条,工具条上有左箭头和右箭头用来切换的输入文本框,还有完成按钮用来收回键盘。
6.你也可以不使用这个自动工具条,设置的代码如下:
[IQKeyboardManager sharedManager].enableAutoToolbar = NO;
7.为某一个ViewController禁用IQKeyboardManager
如果你想在某个 viewcontroller 禁用 IQKeyboardManager 你应该在 ViewDidAppear 中禁用IQKeyboardManager,而在ViewWillDisappear启用它
代码:
#import "IQKeyboardManager.h"
@implementation ExampleViewController
{
BOOL _wasKeyboardManagerEnabled;
}
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
_wasKeyboardManagerEnabled = [[IQKeyboardManager sharedManager] isEnabled];
[[IQKeyboardManager sharedManager] setEnable:NO];
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[IQKeyboardManager sharedManager] setEnable:_wasKeyboardManagerEnabled];
}
@end
8.把键盘的done改为“完成”
IQUIView+IQKeyboardToolbar.m文件里面,找到这一个,替换成initWIthTitle这个方法
// IQBarButtonItem *doneButton =[[IQBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:target action:doneAction];
IQBarButtonItem *doneButton =[[IQBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:target action:doneAction];