美文网首页
IQKeyboardManager和Masonry同时使用,导航

IQKeyboardManager和Masonry同时使用,导航

作者: __枫__ | 来源:发表于2018-02-05 19:49 被阅读56次

    问题

    导航栏上移导航栏上移

    出现问题缘由

    一、当前界面的底部视图不是 UITableView 或者UIScrollView
    二、IQKeyboardManager和Masonry同时使用时,控件布局全部错乱。

    解决方法

    一、重写 loadView 方法 ,把 self.view 替换成 UIScrollView。
    二、增加一个底部视图 backView ,在设置布局时,对 backView 约束时要添加make.width.height.mas_equalTo(self.view); 否则子视图布局的 make.right 失效。
    三、子控件要全部放在添加的底部视图上,而不是self.view 。

    #pragma mark - 重写loadView
    -(void)loadView { 
    
        UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        [scrollView setBackgroundColor:[UIColor grayColor]];
        AdjustsScrollViewInsets_NO(scrollView, self)
        self.view = scrollView;
    
    }
    
    #pragma mark - 布局
    -(void)setSubLayout
    {
        // backView 增加的一个底部视图
        [self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(self.view);
            make.width.height.mas_equalTo(self.view);
        }];
    }
    
    
    -(UIView *)backView
    {
        if (!_backView) {
            _backView = [[UIView alloc]init];
            _backView.backgroundColor = CLEARCOLOR;
            [self.view addSubview:_backView];
        }
        return _backView;
    }
    
    

    相关文章

      网友评论

          本文标题:IQKeyboardManager和Masonry同时使用,导航

          本文链接:https://www.haomeiwen.com/subject/kevizxtx.html