2012-07-06 88 views
1

我见过很多遍布互联网的人,询问如何在边缘淡入淡出的问题。有几种解决方案几乎可行。一个例子是: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]; 

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

谢谢。

回答

0

有同样的问题,假设我们正在谈论的Cocoanetics tutorial,更换你的最后一行:

[self.view.layer addSublayer:maskLayer]; 

有了这一个:

self.historyTable.layer.mask = maskLayer; 

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

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