在UIImageView iOS后面添加CaGradent层

在UIImageView iOS后面添加CaGradent层,ios,core-graphics,mapkit,mkannotationview,cagradientlayer,Ios,Core Graphics,Mapkit,Mkannotationview,Cagradientlayer,我试图在透明图像后面添加渐变。我在map LeftCallout AccessoryView上执行此操作,但是无论我尝试什么,渐变层始终显示在imageView的上方,并希望它显示在它的后面 这是我的MKAnnotationView代码,它是一个名为pinView的ivar pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; UIImageView *profil

我试图在透明图像后面添加渐变。我在map LeftCallout AccessoryView上执行此操作,但是无论我尝试什么,渐变层始终显示在imageView的上方,并希望它显示在它的后面

这是我的MKAnnotationView代码,它是一个名为pinView的ivar

pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

UIImageView *profileIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Profile.png"]];
pinView.leftCalloutAccessoryView = profileIconView;

CAGradientLayer *backgroundLayer = [CAGradientLayer layer];
backgroundLayer.frame = CGRectMake(0, 0, 30, 30);
backgroundLayer.cornerRadius = 2;
backgroundLayer.borderWidth = 1;
backgroundLayer.borderColor = [UIColor whiteColor].CGColor;
backgroundLayer.colors = [NSArray arrayWithObjects:(id)[[sharedManager cellGradientEnd] CGColor], (id)[[sharedManager cellGradientStart] CGColor], nil];
[profileIconView.layer insertSublayer:backgroundLayer atIndex:0];

我用下面的方法设法解决了这个问题,简言之,我创建了一个空视图,然后将imageView作为子视图添加到视图中,现在一切都好了!:

UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
UIImageView *profileIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Profile.png"]];
pinView.leftCalloutAccessoryView = view;

CAGradientLayer *backgroundLayer = [CAGradientLayer layer];
backgroundLayer.frame = view.bounds;
backgroundLayer.cornerRadius = 2;
backgroundLayer.borderWidth = 1;
backgroundLayer.borderColor = [UIColor whiteColor].CGColor;
backgroundLayer.colors = [NSArray arrayWithObjects:(id)[[sharedManager cellGradientEnd] CGColor], (id)[[sharedManager cellGradientStart] CGColor], nil];
[pinView.leftCalloutAccessoryView.layer insertSublayer:backgroundLayer atIndex:0];
[view addSubview:profileIconView];