我在CAGradientLayer
的标题视图中使用TableView
。为了使滚动顺利,我将shouldRasterize
属性设置为YES,这导致了问题。
绘制渐变图层,就像它有边框一样。我在layoutSubviews中设置的所有帧及其所有字段都是整数。
以下是截图:
它是如何出现的:
它看起来如何:
以下是与此渐变图层相关的代码
- (void)createShadow {
CAGradientLayer *shadowLayer= [CAGradientLayer layer];
UIColor *startColor = [UIColor colorWithWholeRed:236 green:235 blue:236];
UIColor *destinationColor = [UIColor colorWithWholeRed:248 green:248 blue:250];
shadowLayer.borderColor = [UIColor clearColor].CGColor;
shadowLayer.borderWidth = 0;
shadowLayer.colors = @[(id)startColor.CGColor,(id)destinationColor.CGColor];
shadowLayer.shouldRasterize = YES;
[self.layer addSublayer:shadowLayer];
self.shadowLayer = shadowLayer;
}
- (void)updateShadow {
CGRect newRect = CGRectMake(0, 0,
self.frame.size.width, ceil(self.frame.size.height * 0.3));
[self.shadowLayer setFrame:newRect];
}
- (void)layoutSubviews {
[super layoutSubviews];
[self updateShadow];
}
如果你知道如何解决这个问题,请告诉我)