我正在尝试创建一个带有标签的简单渐变,我可以将其覆盖在 MKMapView 之上。我查看了 SO,发现我可以使用 CAGradientLayer 而不是覆盖 UIView 中的 drawRect。我想我会试一试。在我的 viewDidLoad 中,我这样做:
CGRect frame = CGRectMake(self.mapView.frame.origin.x, self.mapView.frame.origin.y, 320.0, 44.0);
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = frame;
gradientLayer.backgroundColor = (__bridge CGColorRef)((__bridge id)([UIColor clearColor].CGColor));
[gradientLayer setCornerRadius:12.0];
[gradientLayer setOpacity:0.5];
gradientLayer.colors = @[(id)[UIColor blackColor].CGColor, (id)[UIColor whiteColor].CGColor];
[self.view.layer addSublayer:gradientLayer];
它在正确的路径上,除了左上角和右上角有这个白色。是否有一个原因?我认为这可能是因为我没有设置图层的背景颜色或其他东西,因为我之前在 UIViews 上发生过这种情况,但看起来不像。
谢谢!