gpt4 book ai didi

ios - 在 UIImageView iOS 后面添加 CAGradient 层

转载 作者:行者123 更新时间:2023-11-29 04:09:48 25 4
gpt4 key购买 nike

我正在尝试在透明图像后面添加渐变。我在 map leftCallOutAccessoryView 上执行此操作,但是无论我尝试什么,渐变层始终显示在 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];

最佳答案

我设法使用下面的方法解决了这个问题,简而言之,我创建了一个空 View ,然后将 imageView 作为 subview 添加到该 View 中,现在一切都很甜蜜!:

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];

关于ios - 在 UIImageView iOS 后面添加 CAGradient 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com