我正在做这个教程,在其中的一部分中我无法得到我想要的结果。
我UITableViewCell
将单元格子类化并直接自定义单元格,因为我想为每个单元格添加渐变效果。基本上,我在每个单元格的顶部和底部添加了渐变效果。
这是我使用的代码:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// add a layer that overlays the cell adding a subtle gradient effect
gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.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];
[self.layer insertSublayer:gradientLayer atIndex:0];
}
return self;
}
-(void) layoutSubviews{
[super layoutSubviews];
//ensure that gradient layers occupy the full bounds
gradientLayer.frame = self.bounds;
}
作为理想的结果,我希望看到渐变层占据了单元格的整个边界。然而,它只占据从单元的开始和结束大约 1mm 的空间。因此,它没有占据全部边界。
如果我注释掉[super layoutSubviews]
它,它会显示完整的渐变,它占据了单元格的完整边界。但这一次,它不显示单元格内的文本。
我无法解决它。任何帮助表示赞赏。