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];
    
    }
    
  • 相关阅读:
    学习过程之python跳一跳
    OSError: [WinError -2147221003] 找不到应用程序: 'QR.png' 的解决方法
    易知大学 任务25 第一次爬虫与测试
    linux常用命令
    健身日志
    JavaScript JSON
    常用注解 开发SpringBoot项目
    网络基础
    jQuery MINI UI 学习之分页查询
    Springboot集成ActivitiModel提示输入密码
  • 原文地址:https://www.cnblogs.com/widgetbox/p/8352552.html
Copyright © 2011-2022 走看看