iOS学习之键盘设置以及IQKeyboardManager

在iOS开发中常常出现键盘弹起遮挡UITextField/UITextView等情况,或者需要对键盘设置工具条。


一、使用监听键盘弹出来去除视图遮挡,如下

//监控键盘事件通知
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardWillHide:)name:UIKeyboardWillHideNotificationobject:nil];
#pragma mark - 键盘弹出
- (void)keyBoardWillShow:(NSNotification *)not
{
    //获取通知对象
    NSDictionary *userInfo = [notuserInfo];
    //获取键盘对象
    NSValue *value = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];
    //获取键盘frame
    CGRect keyboardRect = [valueCGRectValue];
    //获取键盘高度
    int height = keyboardRect.size.height;
    CGRect frame =self.view.frame;
    
    //计算视图上移幅度
    frame.origin.y = -height *0.8;
    
    //键盘弹出视图上移
    [UIViewanimateWithDuration:0.18animations:^{
        self.view.frame = frame;
    }];
    
}
#pragma mark -键盘收回调用
- (void)keyBoardWillHide:(NSNotification *)not
{
    CGRect frame =self.view.frame;
    
    frame.origin.y =0;
    
    //键盘弹出视图上移
    [UIViewanimateWithDuration:0.18animations:^{
        self.view.frame = frame;
    }];
}
</span>

二、IQKeyboardManager是一款十分实用的工具,不需要额外的设置,使用IQKeyboardManager的你只需要将源文件添加到项目,就可以使用相关功能,IQKeyboardManager支持Objective-C和swift。

这里附上下载链接:https://github.com/hackiftekhar/IQKeyboardManager

也可以用Cocoapod安装


1)、IQKeyboardManager的基本功能

a、当键盘遮挡输入文本框的时候,自动上移View,使被遮挡的部分自动处于键盘的上方。

   b、导入IQKeyboardManager后,默认所有的页面都有了这个功能

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

  d、点击空白部分键盘回收等



(2)、IQKeyboardManager的基本设置

可以在-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中设置

IQKeyboardManager *manager = [IQKeyboardManagersharedManager];
    manager.enable =YES;// 控制整个功能是否启用。
    manager.shouldResignOnTouchOutside =YES;//控制点击背景是否收起键盘
    manager.shouldToolbarUsesTextFieldTintColor =YES;//控制键盘上的工具条文字颜色是否用户自定义
    manager.toolbarDoneBarButtonItemText =@"完成";//将右边Done改成完成
    manager.enableAutoToolbar =YES;// 控制是否显示键盘上的工具条
    manager.toolbarManageBehaviour =IQAutoToolbarByTag;//最新版的设置键盘的returnKey的关键字 ,可以点击键盘上的next键,自动跳转到下一个输入框,最后一个输入框点击完成,自动收起键盘。

扩展:

#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, strong) IQKeyboardReturnKeyHandler    *returnKeyHandler;
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
     //设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。
self.returnKeyHandler=
[[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
    self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone;
    self.returnKeyHandler.toolbarManageBehaviour = IQAutoToolbarBySubviews;
}


如果视图有导航栏,不想上移View时,UINavigationBar消失:

在UIViewController中

-(void)loadView{
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = scrollView;
}





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值