美文网首页
隐藏导航条后,TableViewCell的位置

隐藏导航条后,TableViewCell的位置

作者: codermali | 来源:发表于2017-11-27 11:50 被阅读5次

    今天碰到一个问题,就是发现在一个界面,隐藏导航控制器之后,TableView添加进控制器的View后,会有一个20的下滑,本来不确定时状态栏的高度;又在iPhoneX上运行了一下,发现下滑44,于是确定了.但是为什么会有这么个下滑呢.

    控制器上的懒加载
    #pragma mark ====================    懒加载    ====================
    - (MLPersonalCenterHeaderView *)headerView
    {
        if (!_headerView)
        {
            _headerView = [[MLPersonalCenterHeaderView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 0.2)];
            _headerView.delegate = self;
        }
        return _headerView;
    }
    - (MLPersonalCenterView *)personalCenterView
    {
        if (!_personalCenterView)
        {
            _personalCenterView = [[MLPersonalCenterView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStylePlain];
            _personalCenterView.toolDelegate = self;
        }
        return _personalCenterView;
    }
    
    
    //TableView中的自定义
    - (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
    {
        if (self = [super initWithFrame:frame style:style])
        {
            self.dataSource = self;
            self.delegate = self;
            self.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);
            self.tableHeaderView = nil;
            self.tableFooterView = nil;
            //设置行高
            self.rowHeight = 44;
            //取消自适应
            self.estimatedRowHeight = 0;
            self.estimatedSectionHeaderHeight = 0;
            self.estimatedSectionFooterHeight = 0;
            self.backgroundColor = [UIColor clearColor];
            self.contentInset = UIEdgeInsetsMake(SCREEN_HEIGHT * 0.2, 0, 0, 0);
            
            //初始化数据
            _imageAry = @[@[@"钱包", @"临时工",  @"预约", @"商品", @"收藏"], @[@"设置"]];
            _titleAry = @[@[@"钱包", @"临时工", @"预约", @"商品", @"收藏"], @[@"设置"]];
        }
        return self;
    }
    

    这样就实现了一个效果

    Simulator Screen Shot - iPhone X - 2017-11-27 at 11.44.24.png

    最后发现,是因为:如果TableView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT),如果同时隐藏了导航条,那么tableView中cell的会让出状态栏的高度.就是说,如果第一个cell的frame是CGRectMake(0, 20, SCREEN_WIDTH, 44),而不是CGRectMake(0, 0, SCREEN_WIDTH, 44).就酱...

    相关文章

      网友评论

          本文标题:隐藏导航条后,TableViewCell的位置

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