博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轻松搞定UITableView中的键盘处理
阅读量:4984 次
发布时间:2019-06-12

本文共 1349 字,大约阅读时间需要 4 分钟。

 

 

 

 

代码如下:

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

 

转载于:https://www.cnblogs.com/iOS771722918/p/4363829.html

你可能感兴趣的文章
zynq -- cannot find -lxil
查看>>
hdu 4658 Integer Partition
查看>>
一个接口能否继承另一个接口?一个抽象类能否实现一个接口?
查看>>
C#基础知识系列八(const和readonly关键字)
查看>>
[转]Axis2创建WebService实例
查看>>
算法: 最长回文子串 二层动态规划
查看>>
硬件综合实习——51单片机四则运算带括号计算器
查看>>
cmake写完了,下一步开始清除编译错误
查看>>
Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...
查看>>
行列转换总结
查看>>
wikioi--1044 拦截导弹
查看>>
Python 中的类与对象 初认识
查看>>
hdu 1828 Picture(线段树)
查看>>
HTML5移动开发中的meta与link
查看>>
url添加时间戳
查看>>
JS/javaScript 获取div内容
查看>>
简单易懂的程序语言入门小册子(6):基于文本替换的解释器,引入continuation...
查看>>
BestCoder24 1001.Sum Sum Sum(hdu 5150) 解题报告
查看>>
3、实例管理
查看>>
高斯消元模板,整数(数学)
查看>>