gpt4 book ai didi

iphone - 在圆形 UIImageView 后面创建阴影时出现问题

转载 作者:太空狗 更新时间:2023-10-30 03:35:24 25 4
gpt4 key购买 nike

我有一个圆形的 UIImageView。当我给它添加阴影时,我失去了圆角。我怎样才能有带圆角的阴影?

//Avatar
CGRect rect;
rect = CGRectMake(13, 10, 48, 48);
avatarImageView = [[TCImageView alloc] initWithURL:[NSURL URLWithString:nil] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
avatarImageView.frame = rect;
avatarImageView.caching = YES;

//Round the corners
CALayer * layer = [avatarImageView layer];
[layer setMasksToBounds:YES];
[layer setCornerRadius:9.0];

//Add a shadow
avatarImageView.layer.shadowColor = [UIColor grayColor].CGColor;
avatarImageView.layer.shadowOffset = CGSizeMake(0, 1);
avatarImageView.layer.shadowOpacity = 1;
avatarImageView.layer.shadowRadius = 9.0;
avatarImageView.clipsToBounds = NO;

[self.contentView addSubview: avatarImageView];

最佳答案

使您的图像显示圆角的功能是隐藏阴影的功能:[layer setMasksToBounds: YES]。您可以做的是,将您的 ImageView 放在 UIView subview 中,该 subview 充当提供阴影的容器。

所以代码可能看起来像这样(我只是把它打下来,虽然没有编译它)

//Avatar
CGRect rect;
rect = CGRectMake(13, 10, 48, 48);
avatarImageView = [[TCImageView alloc] initWithURL:[NSURL URLWithString:nil] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
avatarImageView.frame = rect;
avatarImageView.caching = YES;

//Round the corners
CALayer * layer = [avatarImageView layer];
[layer setMasksToBounds:YES];
[layer setCornerRadius:9.0];

//Add a shadow by wrapping the avatar into a container
UIView * container = [[UIView alloc] initWithFrame: rect];
avatarImageView.frame = CGRectMake(0,0,rect.size.width, rect.size.height);

// setup shadow layer and corner
container.layer.shadowColor = [UIColor grayColor].CGColor;
container.layer.shadowOffset = CGSizeMake(0, 1);
container.layer.shadowOpacity = 1;
container.layer.shadowRadius = 9.0;
container.layer.cornerRadius = 9.0;
container.clipsToBounds = NO;

// combine the views
[container addSubview: avatarImageView];
[self.contentView addSubview: container];
[container release];

关于iphone - 在圆形 UIImageView 后面创建阴影时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476692/

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