zoukankan      html  css  js  c++  java
  • 键盘之上的工具栏,完美实现,动画无缺陷

    //键盘代理事件
    - (void)keyboardWillHide:(NSNotification *)notification{
        _keyBoardShowIng = NO;
        [UIView animateWithDuration:.25 animations:^{
            downView.top = MainScreenHeight;
            if (_richTextToolBar) {
                dispatch_async(dispatch_get_main_queue(), ^{
                     _richTextToolBar.hidden = YES;
                });
               
            }
        }];
        
    }
    
    - (void)keyboardWillShow:(NSNotification *)notification{
        _keyBoardShowIng = YES;
         NSDictionary *userInfo = [notification userInfo];
         NSValue * endValue   = [notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
         CGFloat height = [endValue CGRectValue].size.height;
         if(height==0) return;
    
        
        NSNumber *duration = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
        
        NSNumber *curve = [userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
        
        // 添加移动动画,使视图跟随键盘移动
        
        [UIView animateWithDuration:duration.doubleValue animations:^{
            
            [UIView setAnimationBeginsFromCurrentState:YES];
            
            [UIView setAnimationCurve:[curve intValue]];
            
            downView.bottom = MainScreenHeight - height;
            
        }];
    }
    
    但是记得下面
    
    -(void)viewDidDisappear:(BOOL)animated
    {
        [super viewDidDisappear:animated];
        
        [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
         [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
    
    }
    
    -(void)viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    
    }
    
  • 相关阅读:
    PHP删除文件
    PHP定时执行任务
    PHP设置30秒内对页面的访问次数
    PHP抓取网页内容的几种方法
    QQ,新浪,SNS等公众平台的登录及api操作
    php,javascript设置和读取cookie
    php验证邮箱,手机号是否正确
    php自定义加密和解密
    Linux下安装启动多个Mysql
    linux-gcc 编译时头文件和库文件搜索路径
  • 原文地址:https://www.cnblogs.com/widgetbox/p/8352552.html
Copyright © 2011-2022 走看看