美文网首页iOS开发
UITableView下拉背景色

UITableView下拉背景色

作者: yitez | 来源:发表于2019-04-17 17:03 被阅读25次

    项目里有个需求,tableView下滑的时候,tableView偏移部分的颜色要保持和导航栏背景色同色(tableView背景是灰色,导航栏背景白色),不然会有撕裂感,类似微信的“他人资料”页的效果。
    找了一下,tableview本身没有独立的控件,然后就用笨办法实现了一下。

    创建一个白色背景的view,添加的tableview所在的的superview上。

    @property (nonatomic, strong) UIView *topHeadBgView;
    
    - (UIView *)topHeadBgView
    {
        if (!_topHeadBgView) {
            _topHeadBgView  = [UIView new];
            _topHeadBgView.backgroundColor = [UIColor whiteColor];
        }
        return _topHeadBgView;
    }
    

    监听tableview的contentoffset。

    [self.dataTableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];
            [self addSubview:self.topHeadBgView];
    

    白色view的尺寸跟着偏移量变就行了。

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
    {
        if ([keyPath isEqualToString:@"contentOffset"])
        {
            NSValue *newvalue = change[NSKeyValueChangeNewKey];
            CGFloat newoffset_y = newvalue.UIOffsetValue.vertical;
            self.topHeadBgView.frame = CGRectMake(0, 0, SCREEN_WIDTH, -newoffset_y);
        }
    
    }
    

    相关文章

      网友评论

        本文标题:UITableView下拉背景色

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