我一直在谷歌寻找答案。我找到了this,但它只告诉我关于渐变"背后"表视图,它不可滚动。 还找到this,但它仍然是静态的。 我自己的解决方案是:
-(void)setupGradientBg{
//background gradient for channel page
CAGradientLayer *gLayer = [CAGradientLayer layer];
gLayer.colors = @[
(id)[UIColor whiteColor].CGColor,
(id)[UIColor blackColor].CGColor
];
gLayer.startPoint = CGPointMake(0, 0);
gLayer.endPoint = CGPointMake(1, -1);
CGRect frame = self.channelInfoTableView.bounds;
frame.origin.y = frame.origin.y - (self.channelInfoTableView.contentSize.height / 2);
frame.size.height = self.channelInfoTableView.contentSize.height + (self.channelInfoTableView.contentSize.height / 2);
gLayer.frame = frame;
[gLayer setMasksToBounds:YES];
[self.channelInfoTableView.layer insertSublayer:gLayer atIndex:0];
}
当行是最后一个索引时,在cellForRowAtIndexPath中调用它,但它似乎在每个单元格中重复。
我也尝试在重新加载表视图后调用此方法,但它似乎在上面切(我假设,tableView的图层可能与tableView的内容大小不同)
如果您注意到我的代码,我会扣除其y位置,以便在用户向上滚动时进行扩展,如果用户向下滚动太多,我也会增加高度。
我只是希望渐变图层的大小与表格视图的内容大小相同"因此,如果我在表格视图中向下滚动,则会出现渐变背景。任何人都可以帮我解决这个问题吗?我将不胜感激,谢谢!
答案 0 :(得分:0)
我放弃了桌面视图。我只需要创建另一个滚动视图并将上面代码的self.channelInfoTableView替换为滚动视图,它就可以工作。