zoukankan      html  css  js  c++  java
  • 轻松搞定UITableView中的键盘处理

    代码如下:

    1,通知:

    #pragma mark - 键盘处理

    -(void) keyboardWillShow:(NSNotification *)note{

        // get keyboard size and loctaion

        //键盘的frame

        CGRect keyboardBounds;

        [[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &keyboardBounds];

        keyboardBounds = [self.view convertRect:keyboardBounds toView:nil];

        

        //主窗口

        UIWindow* win = [UIApplication sharedApplication].keyWindow;

        DLog(@"%@",win);

        

        //_currentTF是cell中正在编辑的TF

        UITableViewCell* cell = [PCMNWE cellByTableView:self.tableView tf:_currentTF];

        NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];

        CGRect frame = [self.tableView convertRect:[self.tableView rectForRowAtIndexPath:indexPath] toView:win];

        DLog(@"%f",keyboardBounds.size.height);

        CGFloat height = frame.origin.y+44.0;

        if ((height + keyboardBounds.size.height) > UI_SCREEN_HEIGHT) {

            CGRect frameNew = self.tableView.frame;

            frameNew.origin.y -= keyboardBounds.size.height - (UI_SCREEN_HEIGHT - height);

            [UIView animateWithDuration:0.2 animations:^{

                self.tableView.frame = frameNew;

            }];

        }

        

    }

    2,代理:

    - (void)textFieldDidEndEditing:(UITextField *)textField {

        

        //将self.tableView.frame打回原形

        [UIView animateWithDuration:0.3 animations:^{

            self.tableView.frame = CGM(0,0, UI_SCREEN_WIDTH, UI_SCREEN_HEIGHT - UI_STATUS_BAR_HEIGHT - 44.0);

        }];

    }

    暂时没有发现这段代码有什么问题.

    若有BUG,欢迎加QQ指教:771722918

  • 相关阅读:
    JSON--List集合转换成JSON对象
    某些项目因位于工作空间目录中而被隐藏
    Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
    SQLSERVER2008 18456错误
    android捕获ListView中每个item点击事件
    Android中Toast的用法简介
    android ListView详解
    Android调试工具及方法
    免费卫星图像下载网站
    ArcScene三维制作
  • 原文地址:https://www.cnblogs.com/iOS771722918/p/4363829.html
Copyright © 2011-2022 走看看