`

监听键盘弹出隐藏状态,view随之变化高度

阅读更多

添加监听

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(changeContentViewPosition:)
                                             name:UIKeyboardWillShowNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(changeContentViewPosition:)
                                             name:UIKeyboardWillHideNotification
                                           object:nil];

 移除监听

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];

 事件处理函数

- (void) changeContentViewPosition:(NSNotification *)notification{

    NSDictionary *userInfo = [notification userInfo];
    NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGFloat keyBoardEndY = value.CGRectValue.origin.y;

    NSNumber *duration = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSNumber *curve = [userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];

    [UIView animateWithDuration:duration.doubleValue animations:^{
        [UIView setAnimationBeginsFromCurrentState:YES];
        [UIView setAnimationCurve:[curve intValue]];
        self.view.center = CGPointMake(self.view.center.x, keyBoardEndY - STATUS_BAR_HEIGHT - self.view.bounds.size.height/2.0);
    }];
}

 

 

0
0
分享到:
评论

相关推荐

    android adjustNothing下获取键盘高度

    `adjustNothing`是Android系统提供的调整窗口策略之一,它表示在键盘弹出时,应用程序窗口不会做任何调整。在这种情况下,我们需要手动处理键盘的高度,以便正确地调整输入框的位置。 首先,我们需要理解Android中...

    软键盘遮住悬浮窗的EditText、软键盘消失无法监听返回键

    本文将深入探讨如何解决这一问题,并实现软键盘与悬浮窗的联动,即软键盘弹出时悬浮窗跟随升高,软键盘关闭时悬浮窗随之消失。 首先,我们要理解Android系统的窗口层级管理。Android系统中的窗口(Window)分为多个...

    IOS开发中键盘输入屏幕上移的解决方法

    // 当用户开始编辑时,键盘弹出,屏幕上移 - (void)textFieldDidBeginEditing:(UITextField *)textField { // 键盘高度通常为216像素,但也可以通过UIKeyboardFrameEndUserInfoKey获取动态高度 CGFloat ...

    Android编程之ListView和EditText发布帖子隐藏软键盘功能详解

    当键盘弹出时,屏幕高度会相应减少,因此可以通过比较布局变化前后的高度差来判断键盘状态。例如: ```java editText.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void ...

    iOS实现输入框跟随键盘自动上移的实例代码

    在iOS开发中,用户在带有输入框的界面中输入时,键盘弹出可能会遮挡部分视图,尤其是手机屏幕尺寸较小的情况下,这个问题尤为明显。为了提高用户体验,我们需要实现输入框跟随键盘自动上移的功能。本篇文章将详细...

    安卓开发-多级PopupWindow的小demo.zip.zip

    在Android开发中,PopupWindow是一个非常实用的组件,它能够以弹出窗口的形式展示内容,类似于iOS中的ActionSheet。这个“安卓开发-多级PopupWindow的小demo”压缩包提供了一个实例,展示了如何创建和实现多级...

    Android 仿快播搜索框上方悬浮的文字搜索源码.zip

    1. **浮动视图(Floating View)**:实现搜索框悬浮于屏幕上方的关键在于使用`FloatingActionButton`或自定义视图,使其能够覆盖在其他应用内容之上,并保持固定位置或者随手指滑动而移动。 2. **输入法管理...

    安卓Android源码——前面部分可以编辑后面部分不可编辑的EditText.zip

    可以使用`android:focusableInTouchMode="true"`属性确保焦点在EditText上,软键盘会随之出现。 6. **性能优化** 考虑到用户体验,我们需要确保自定义EditText的性能尽可能接近原生组件。避免在onDraw()和...

    iOS高仿微信文章悬浮球功能

    在键盘弹出时,UIRemoteKeyboardWindow就是这样一个例子,它可以独立存在于当前显示的ViewController之上。 再者,**事件响应**是悬浮球功能的另一核心部分。为了实现悬浮球的交互,我们需要重写UIWindow的`point...

Global site tag (gtag.js) - Google Analytics