如何解决在圆形UIImageView后面创建阴影时出现问题
| 我有一个圆形的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];
解决方法
该功能使您的图像带有圆角,这是一个隐藏阴影的功能:“ѭ1”。您可以做的是,将ImageView放在UIView子视图中,该子视图充当提供阴影的容器。
因此代码可能看起来像这样(我只是打了下来,虽然没有编译)
//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,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];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。