解决表单被键盘遮住的问题(续)

刚才检查代码的时候 发现了之前代码的一些问题 这里做一下修正 为此我为UIView和UITableView各新增了一个Category方法

UIView的Category

- (BOOL) haveSubview:(UIView*)subView
{
    UIView *v = subView;
    
    while (v)
    {
        if ( self == v )
        {
            return YES;
        }
        
        v = v.superview;
    }
    
    return NO;
}

UITableVIew的Category

- (BOOL) haveSubview:(UIView*)subView
{
    if ( v && [self haveSubview:v] )
    {
        while ( v && ![[v class] isSubclassOfClass:[UITableViewCell class]]) {
            v = v.superview;
        }
        
        if ( v )
        {
            NSLog(@"%@",NSStringFromClass(v.class));
            
            UITableViewCell *cell = (UITableViewCell*)v;
            
            NSLog(@"%@",[self indexPathForCell:cell]);
            
            [self scrollToRowAtIndexPath:[self indexPathForRowAtPoint:cell.center] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
        }
    }
}
这样 当我们需要处理弹出键盘时 就只需要如此调用就可以了
UIView *v = [UIResponder currentFirstResponder];
[self.tableView scrollToView:v];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,542评论 0 12
  • 2017.7.2 周天 晴 加入特训营已经一周了,除了忙碌,还有很多收获。 每天已经习惯早...
    咨羽阅读 196评论 0 0