美文网首页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