我正在使用下面的代码向我的表格单元格添加微妙的渐变效果。
// add a layer that overlays the cell adding a subtle gradient effect
CAGradientLayer* gradientLayer = [CAGradientLayer layer];
NSLog(@"%@",NSStringFromCGRect(cell.bounds));
gradientLayer.frame = cell.bounds;
gradientLayer.colors = @[(id)[[UIColor colorWithWhite:1.0f alpha:0.2f] CGColor],
(id)[[UIColor colorWithWhite:1.0f alpha:0.1f] CGColor],
(id)[[UIColor clearColor] CGColor],
(id)[[UIColor colorWithWhite:0.0f alpha:0.1f] CGColor]];
gradientLayer.locations = @[@0.00f, @0.01f, @0.95f, @1.00f];
[cell.layer insertSublayer:gradientLayer atIndex:0];
运行代码后,我可以看到CAGradientLayer已添加到我的cell.layer中。但是,当我在iOS 7 Simulator上运行该应用程序时,我根本看不到它。
<CALayer:0xaca1980; sublayers = (<CAGradientLayer: 0xaad2110>, <CALayer: 0xaca2a70>);
该代码可在iOS 6上正常运行。
如果CAGradientLayer无法再在iOS 7上运行,该如何为我的表格单元格添加渐变呢?
提前致谢。
我已通过更改解决此问题
[cell.layer insertSublayer:gradientLayer atIndex:0];
到
[cell.layer insertSublayer:gradientLayer atIndex:1];
为了向后兼容。我正在使用这样的代码
if ([Common isiOS7]) {
[self.layer insertSublayer:_gradientLayer atIndex:1];
}
else {
[self.layer insertSublayer:_gradientLayer atIndex:0];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句