flutter 键盘遮挡输入框问题_ios 键盘遮挡输入框

输入框被键盘挡住啦!!!

“ios开发过程中,常遇到文本输入框会被弹出的键盘遮住问题,为了更好的体验感,通常需要滚动视图,使之输入框在键盘上面。是不是经常不知道该怎么计算滚动距离而苦恼,脑子莫名的冒出卧槽?别慌,别慌,小场面,问题真的真的不大!!!!!下面将举例说明如何解决这种问题。”

案例

如下图所示:

常用的评论回复

2d21f833cacce6b6afe11fad78807569.png

当点击评论回复时,需要向上滚动视图,可以看见当前回复的是那个评论.

原理与解决方案

原理:是不是要滚动,是通过(cell 与view的距离)与 (键盘与view的距度). 大小进行比较,计算出滚动距离。

滚动公式: self.tableView.contentOffset = CGPointMake(0,滚动距离);

假设如下:

(1)计算键盘距离视图距离

//视图高度

float screenHeight = 568;

//键盘高度

float keyboardHeight = 200;

//导航高度

float navHeight = 49;

//键盘距离视图距度为

float boardY = screenHeight - keyboardHeight - navHeight;

(2)计算cell距离视图距离

CGRect rect=[cell convertRect:cell.bounds toView:window];

float cellY = rect.orgin.y + rect.size.height;

(3)判断是否需要滚动

if(boardY > cellY){

NSLog(@"不滚动视图");

}else{

NSLog(@"滚动视图");

}

(4)滚动大小

float srollHeight = cellY - boardY;

(5)滚动距度

滚动距离 = self.tableView.contentOffset.y+srollHeight;

其它事项 滚动tableView时需要隐藏键盘

在tableView代理事件中判断

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

if(!(scrollView.isTracking||scrollView.isDecelerating)) {

//不是用户滚动的,不需要处理。

return;

}else{

//进行隐藏键盘

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值