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];
    
    }
    
  • 相关阅读:
    sqlserver 中的 substring函数(转)
    C#二个相减怎么获得天数,就是比如201225 与201231之间相差的天数
    C++文件添加到项目中
    VS2008动态链接库(DLL)的创建与导入
    美剧字幕绿箭侠第1季第7集
    C++中#define用法
    C++头文件的重复引用
    visual studio中解决方案是什么
    NewWords/300400
    指针
  • 原文地址:https://www.cnblogs.com/widgetbox/p/8352552.html
Copyright © 2011-2022 走看看