作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将 uiimageview 的顶部两个角圆化,但以下代码不显示圆角,只显示普通图像。我错过了什么吗?谢谢
UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 328)];
imgView.backgroundColor = [UIColor clearColor];
imgView.contentMode = UIViewContentModeScaleAspectFill;
imgView.image = image;
CAShapeLayer * shapeLayer = [CAShapeLayer layer];
shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 320, 328) byRoundingCorners:2 cornerRadii:CGSizeMake(20.0, 20.0)].CGPath;
shapeLayer.frame = CGRectMake(0, 0, 320, 328);
self.profilePictureView.layer.mask = shapeLayer.mask;
self.profilePictureView.layer.masksToBounds = YES;
[cell.contentView addSubview:self.profilePictureView];
cell.contentView.backgroundColor = [UIColor clearColor];
最佳答案
这对我有用
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//Just to add contrast
[self.view setBackgroundColor:[UIColor blackColor]];
UIImage * image = [UIImage imageNamed:@"logo3w.png"];
UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 328)];
imgView.contentMode = UIViewContentModeScaleAspectFill;
imgView.image = image;
// Add the imageView to your view heirarchy, UITableViewCell or otherwise
[self.view addSubview:imgView];
CAShapeLayer * shapeLayer = [CAShapeLayer layer];
//Setting the background color of the masking shape layer to clear color is key
//otherwise it would mask everything
shapeLayer.backgroundColor = [UIColor clearColor].CGColor;
shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:imgView.bounds byRoundingCorners: UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(20.0, 20.0)].CGPath;
imgView.layer.masksToBounds = YES;
imgView.layer.mask = shapeLayer;
//Be sure to set the frame of the maskingLayer to be the bounds of the layer you want to mask
shapeLayer.frame = imgView.layer.bounds;
// self.profilePictureView had never been assigned imgView what we want to mask
// self.profilePictureView.layer.mask = shapeLayer.mask;
// self.profilePictureView.layer.masksToBounds = YES;
// [cell.contentView addSubview:self.profilePictureView];
// cell.contentView.backgroundColor = [UIColor clearColor];
}
让我知道它是否有效,或者如果您有更多问题!
关于iphone - UIimageView 圆顶角 BezierPath 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12197894/
我是一名优秀的程序员,十分优秀!