[英]How to add shadow to a GMSMarker?
我正在尝试向GMSMapView上的标记添加一些阴影 ,但是配置GMSMarkerLayer的阴影属性似乎没有任何效果。
GMSMarker *marker = [[GMSMarker alloc] init];
[marker setMap:self.mapView];
marker.snippet = @"Description";
marker.title = @"Title";
marker.position = busData.location.coordinate;
marker.icon = [UIImage imageNamed:@"BusMarker"];
marker.layer.shadowOpacity = 0.7;
marker.layer.shadowOffset = CGSizeMake(0, 3);
marker.layer.shadowRadius = 5.0;
marker.layer.shadowColor = [UIColor blackColor].CGColor;
我正在设置与CALayer对象相同的属性,因为GMSMarkerLayer子类是CALayer。
我是在做错什么还是错误? 我正在使用SDK版本1.10.0。
您可以使用iconView
属性并在该视图内绘制阴影(将其限制在iconView
范围内)。
这里要了解的是iOS上的Google Maps是在OpenGL中实现的。 因此,更改GMSMarkerLayer的默认属性没有视觉效果。 对于那个很抱歉。
不实际,但这是答案:
-(UIImage *)makeShadowImage:(UIImage *) image;
{
CALayer *imageLayer = [CALayer layer];
imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height);
imageLayer.contents = (id) image.CGImage;
[imageLayer setShadowColor:[[UIColor grayColor] CGColor]];
[imageLayer setShadowOpacity:0.5];
[imageLayer setShadowOffset:CGSizeMake(0, 0)];
[imageLayer setShadowRadius:4.0];
imageLayer.masksToBounds = YES;
UIGraphicsBeginImageContext(image.size);
[imageLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return roundedImage;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.