iOS--开发技巧搜集知识iOS开发的那些事儿。。。

iOS 零行代码实现键盘自适应

2016-06-23  本文已影响2232人  小猪也浪漫

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,使被遮挡的部分自动处于键盘的上方。


回收键盘测试1.gif

5.在键盘上会自动添加一个工具条,工具条上有左箭头和右箭头用来切换的输入文本框,还有完成按钮用来收回键盘。


回收键盘测试2.gif
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改为“完成”

效果图.png

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];

是不是很心动,赶紧测试吧❤️

上一篇下一篇

猜你喜欢

热点阅读