UITableView淡入背景

时间:2012-07-06 10:34:51

标签: iphone ios 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];

此代码效果很好,但它的问题是它只能将其淡化为纯色。我希望能够做到的是逐渐消失到背景图像(它将具有图案并可以将屏幕更改为屏幕)。有没有办法做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

遇到同样的问题,假设我们正在谈论Cocoanetics tutorial,请替换你的最后一行:

[self.view.layer addSublayer:maskLayer];

有了这个:

self.historyTable.layer.mask = maskLayer;

基本上跳过本教程的最后一步,但将掩码附加到tableView的图层。

同时检查this答案是否有完整的解决方案,包括处理表的顶部和底部..