ios如何在没有输入框时打开键盘,键盘遮挡输入框
ios如何在没有输入框时打开键盘,键盘遮挡输入框滚动公式: self.tableView.contentOffset = CGPointMake(0 滚动距离); 原理:是不是要滚动,是通过(cell 与view的距离)与 (键盘与view的距度). 大小进行比较,计算出滚动距离。 常用的评论回复当点击评论回复时,需要向上滚动视图,可以看见当前回复的是那个评论.原理与解决方案
输入框被键盘挡住啦!!!
“ios开发过程中,常遇到文本输入框会被弹出的键盘遮住问题,为了更好的体验感,通常需要滚动视图,使之输入框在键盘上面。是不是经常不知道该怎么计算滚动距离而苦恼,脑子莫名的冒出卧槽?别慌,别慌,小场面,问题真的真的不大!!!!!下面将举例说明如何解决这种问题。”
案例
如下图所示:
常用的评论回复
当点击评论回复时,需要向上滚动视图,可以看见当前回复的是那个评论.
原理与解决方案
原理:是不是要滚动,是通过(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{
//进行隐藏键盘
}
}