iOS Dev (54) 键盘弹出后收起时View随之移动

iOS Dev (54) 键盘弹出后收起时View随之移动

  • 作者:大锐哥
  • 博客:http://prevention.iteye.com

-

添加监听

[[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);
    }];
}

Reference

  • http://www.cnblogs.com/programmer-blog/p/3265110.html

iOS Dev (54) 键盘弹出后收起时View随之移动

时间: 2024-10-11 11:14:37

iOS Dev (54) 键盘弹出后收起时View随之移动的相关文章

iOS Dev (63) 如何在 TableView 滚动时收起键盘?

iOS Dev (63) 如何在 TableView 滚动时收起键盘? 作者:阿锐 地址:http://blog.csdn.net/prevention - - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [_inputTextView resignFirstResponder]; } - 转载请注明来自:http://blog.csdn.net/prevention iOS Dev (63) 如何在 TableView 滚动时收

周记3——解决fixed属性在ios软键盘弹出后失效的bug

这周在做空间("类似"qq空间)项目.首页是好友发表的说说,可以针对每条说说进行评论,评论框吸附固定在屏幕底部.此时,Bug来了...在ios上,软键盘弹出后fixed属性失效了.后来发现,ios绝大部分情况把fixed变成了absolute.为什么说是绝大部分情况下而不是100%,后面会提到.下面介绍2种方案... 1.css布局 (推荐) 解决思路:既然在 iOS 下由于软键盘唤出后,页面 fixed 元素会失效,导致跟随页面一起滚动,那么假如--页面不会过长出现滚动,那么即便 f

web页面移动端键盘弹出后对页面布局的影响

1.由于弹出键盘后屏幕的高度会发生改变,所以页面的绝对/固定定位布局会受到影响 2.键盘弹出后输入框被遮挡掉了,需要设置定时器在输入框聚焦200ms后调用红框区域的标签的scrollIntoView(true)和scrollIntoViewIfNeeded()使输入框显示在可视区域内               3.键盘弹出后页面发生滚动,若不想然页面滚动可设置定时器在输入框聚焦200ms后把页面的滚动位置重置为0px 原文地址:https://www.cnblogs.com/chenxiang

[iOS]键盘弹出后收回去

func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() //由于delegate 的原因 所有方法跟delegate都是相对的 return true } override func touchesEnded(touches: NSSet, withEvent event: UIEvent) { todoItem.resignFirstResponder() } 方

关于ListView中EditText在软键盘弹出后的焦点问题

转自:http://www.cnblogs.com/haofei/p/3305030.html 在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点. 解决办法:在getView()方法中添加监听器: editText.setOnTouchListener(new OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEve

移动端文本框被原生键盘弹出后挡住文本框

html: <input id="val_name" type="text" placeholder="姓名"  onfocus="fup(val_name)" onblur="fdown(val_name)" > js: function fup(id){ setTimeout(function () { id.scrollIntoView(true); },100) } function f

移动端点击文本框 键盘弹出解决访问

当我们做h5的时候,经常会遇到键盘弹出遮挡文本框的情况,这里区分IOS和安卓, 在IOS中,IOS会在键盘弹出后自动将文本框上移,避免文本框被键盘挡住,但是在收起键盘的时候 在vue中会导致页面的卡死,这个时候我们可以用 document.body.scrollIntoView(false) 来手动让页面重新渲染,因为IOS收起键盘后,会触发当事文本框的blur事件,所以我们可以给文本框添加该事件. 在安卓中,通常会出现键盘把文本框遮挡住的情况,我们可以监听文本框的focus事件,当文本框foc

[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

http://blog.csdn.net/lovelyelfpop/article/details/52033045 Cordova iOS应用在使用系统自带输入法键盘的时候,聚焦文本框是会将整体webview界面上移的,如下图: 然而,如果你用的是第三方输入法(百度.搜狗.qq输入法等都是),聚焦文本框弹出键盘时,界面却不会整体上移,导致文本框被软键盘遮挡,如下图: 不仅被遮挡,靠底部的文本框还无法往上拖拽滚至可视区域. 解决办法一:第三方键盘弹出,实现界面也能上移 使用 ionic-plug

js 监听手机端键盘弹出和收起事件

//这里区分不同系统,可以参考之前的文档记录 https://www.cnblogs.com/wind-wang/p/10737110.html const ua = typeof window === 'object' ? window.navigator.userAgent : ''; let _isIOS = -1; let _isAndroid = -1; export function isIOS() { if (_isIOS === -1) { _isIOS = /iPhone|iP