我在互联网上看到很多人问如何在边缘淡化他们的表格视图的问题。有一些解决方案几乎有效。一个例子是:
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;
基本上跳过本教程的最后一步,但将蒙版附加到表视图的图层。
另请查看此答案以获取完整的解决方案,包括处理表的顶部和底部。