UITableView下拉隐藏背景色

如果给UITbaleView设置背景色,那么在bounce属性不禁用的话,下拉或者上拉,都会出现tableView的背景色。

如下图:
这里写图片描述

下拉的时候,在与导航的衔接处出现了背景色。


有些界面为了保持上部的美观,要求在下拉的时候保持HeadView的背景色,在上拉的时候显示tableView的背景色。

第一个实现思路是:创建一个和背景色一样的view,与tableView处于同级,但在tableView之上。

 _underView = [[UIView alloc]initWithFrame:CGRectMake(0, 64, ScreenWidth, 0)];
    _underView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:_underView];

通过方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        if(scrollView.contentOffset.y<0){
        CGRect frame = _underView.frame;
        frame.size.height = 0-scrollView.contentOffset.y;
        _underView.frame = frame;
    }else{
         CGRect frame = _underView.frame;
        frame.size.height = 0;
        _underView.frame = frame;
    }

}

获取到 scrollView.contentOffset.y ,来改变view的高度。
此方法可以实现。

除此之外,还有一种更简单粗暴的方法,在创建headView的时候,创建一个view,贴到 headView 上。

UIView *underView = [[UIView alloc] initWithFrame:CGRectMake(0, -MaxHeight, self.width, MaxHeight)];

underView.backgroundColor = [UIColor whiteColor];

[self addSubview:underView];

至于MaxHeight,只要大于你下拉的偏移的最大值就好了。为了保险,可以取tableView的高度。
最后效果如下:
这里写图片描述

虽然相比上一种方法,这种方法有些low,投机取巧的感觉。但简单,管用。


另外,如果项目里有想相当一部分这种需求的tableView,不放把这两个方法中的其中一个集成到一个父类当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值