UITableView 淡入背景



我在互联网上看到很多人问如何在边缘淡化他们的表格视图的问题。有一些解决方案几乎有效。一个例子是:

CAGradientLayer *maskLayer = [CAGradientLayer layer];
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
maskLayer.colors = [NSArray arrayWithObjects:(__bridge id)innerColor, (__bridge id)outerColor, nil];
maskLayer.locations = [NSArray arrayWithObjects:
                       [NSNumber numberWithFloat:0.8], 
                       [NSNumber numberWithFloat:1.0], nil];

maskLayer.bounds = CGRectMake(0, 0,
                              self.historyTable.frame.size.width,
                              self.historyTable.frame.size.height + self.headerLabel.frame.size.height);
maskLayer.anchorPoint = CGPointZero;
[self.view.layer addSublayer:maskLayer];

这段代码运行良好,但它的问题是它只能将其淡化为纯色。我希望能够做的是淡入背景图像(它将具有图案并且可以在屏幕之间更改屏幕)。有什么办法可以做到这一点吗?

谢谢。

有同样的问题,假设我们正在谈论Cocoanetics教程,请替换最后一行:

[self.view.layer addSublayer:maskLayer];

有了这个:

self.historyTable.layer.mask = maskLayer;

基本上跳过本教程的最后一步,但将蒙版附加到表视图的图层。

另请查看此答案以获取完整的解决方案,包括处理表的顶部和底部。

最新更新