`
mrjeye
  • 浏览: 177698 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

iOS5键盘弹出view自适应

 
阅读更多
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    
#ifdef __IPHONE_5_0
    float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    if (version >= 5.0) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];
    }
#endif



#pragma -
#pragma keyboard notification
- (void)keyboardWillShow:(NSNotification*)notification {
    NSDictionary *userInfo = [notification userInfo];
    
    NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    
    CGRect keyboardRect = [aValue CGRectValue];
    
    NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval animationDuration;
    [animationDurationValue getValue:&animationDuration];
    
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:animationDuration];
    
    ... do something ...
    
    [UIView commitAnimations];
}

- (void)keyboardWillHide:(NSNotification*)notification {
    NSDictionary *userInfo = [notification userInfo];
    
    NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    
    CGRect keyboardRect = [aValue CGRectValue];
    
    NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval animationDuration;
    [animationDurationValue getValue:&animationDuration];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:animationDuration];
    
    ... do something ...
    
    [UIView commitAnimations];
}


改变键盘大小时也会更新视图
分享到:
评论

相关推荐

    ios-键盘弹起后自适应布局动画View.zip

    在iOS应用设计中,用户体验至关重要,确保用户在键盘弹出时仍能清晰地看到并操作其他界面元素是必不可少的。 首先,描述中提到的"在xib中把view拖入"指的是使用Interface Builder(Xcode中的可视化设计工具)来设计...

    iOS 输入键盘自适应

    当用户在UITextField或UITextView中输入时,弹出的键盘可能会遮挡到这些输入控件,导致用户无法看到自己正在输入的内容。为了解决这个问题,开发者通常需要实现键盘自适应功能,使得输入控件能够随着键盘的出现自动...

    iOS键盘自适应弹出效果

    知识点一: iOS 键盘弹出机制 iOS 中的键盘弹出机制是通过监听键盘相关的通知来实现的。开发者可以通过添加观察者来监听 UIKeyboardWillShowNotification 和 UIKeyboardWillHideNotification 两个通知,从而获取...

    ios-仿QQ、微信辅助输入视图动态自适应高度.zip

    在iOS应用开发中,模拟QQ和微信的辅助输入视图是一种常见的需求,它涉及到用户界面交互的优化,尤其是处理键盘弹出时与输入框的关系。本文将深入探讨如何实现这样一个功能,即辅助输入视图(InputView)动态自适应...

    IOS应用源码——点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容.zip

    本压缩包中的资源提供了针对这一问题的解决方案,即在键盘弹出时,整个视图会自动向上移动,确保输入框始终可见。 首先,我们要理解iOS中处理键盘显示和隐藏的基本机制。系统提供了UIKeyboardNotifications,包括...

    滚动视图自适应键盘出现和消失

    当键盘弹出遮挡了输入框时,滚动视图需要能够自动调整内容偏移,以便用户仍能清晰地看到正在输入的文本。"监听键盘出现 滚动视图自动滚动"这个话题正是针对这种场景的解决方案。 首先,我们需要了解如何监听键盘的...

    swift-SXTextView一个TextView无限输入不被键盘遮挡

    IQKeyboardManager是iOS开发中的一个流行库,用于管理键盘与输入字段之间的距离,防止键盘弹出时覆盖输入框。它提供了一种简单的方式来避免用户在输入时需要手动滚动屏幕以查看或编辑文本。IQKeyboardManager的工作...

    解决键盘遮挡输入框

    当用户点击一个UITextField进行输入时,键盘弹出可能会遮挡下方的输入框。为了解决这个问题,开发者通常会使用`NSNotificationCenter`监听`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知...

    IOS应用源码之自制 iPhone DataGrid 数据列表组件,支持行列锁定Grid.zip

    7. 键盘响应:在数据编辑场景下,开发者可能考虑了键盘弹出和隐藏的处理,以避免键盘遮挡到正在编辑的单元格。 8. 兼容性与适配:为了保证在不同设备和屏幕尺寸上的良好显示,开发者可能使用AutoLayout和Size ...

    IOS开发手册

    - **触发:** 键盘通过用户与文本输入视图的交互自动弹出。 - **类型:** 可以指定不同的键盘类型如数字、电子邮件等。 **2.4 按钮与选择** - **按钮:** 使用`UIButton`来创建可点击的按钮。 - **选择:** 提供了多种...

    ios开发记录

    //弹出框 Alert 警告,alertView是局部变量,他的作用域只在if这个大括号内 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"警告" message:@"用户名不能为空" delegate:nil cancelButtonTitle:@...

    UIKitDemo:这只是自己总结的一些控件的使用

    7. **UIAlertController**:UIAlertController用于弹出警告或行动表,提供了一种优雅的方式来向用户显示信息或请求用户输入。在UIKitDemo中,你会看到如何创建不同类型的alert,添加按钮并处理响应。 8. **...

Global site tag (gtag.js) - Google Analytics