我想画一个椭圆形的UIImageView
。我试图绘制,但我云找不到答案。我显示大部分圆形或圆形。
enter link description here
我试试这个,但这不是工作
#import <QuartzCore/QuartzCore.h>`
CALayer *imageLayer = YourImageview.layer;
[imageLayer setCornerRadius:5];
[imageLayer setBorderWidth:1];
[imageLayer setMasksToBounds:YES];
答案 0 :(得分:8)
如果要绘制椭圆形的图像视图,请按照以下步骤操作:
使用 bezierPathWithOvalInRect
创建UIBezierPathUIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:YOUR_RECT];
使用 CAShapeLayer
创建遮罩层CAShapeLayer *maskLayer = [CAShapeLayer layer];
现在将bezier路径设置为遮罩层的路径
maskLayer.path = path.CGPath;
然后我们将使用我们自己的遮罩层来掩盖我们的视图。
YourImageview.layer.mask = maskLayer;
这就是全部。试试吧。
答案 1 :(得分:1)
是的,您可以通过绘制BezierPath来完成它,但即使我们无法获得精确的圆形图像...... 所以我会给你其他的伎俩...... 你使用2 imageview 一个用于传递图像的main-imageview .. 第二个(俯视图像)用于圆形或圆形图像,橙色边框在中间/中心是透明的。
当您在主图像视图上使用overheadimageview时,您可以找到精确的圆形或圆形图像
答案 2 :(得分:0)
你需要有一个半径为图像大小的半径的角,以绘制cricular 但要画椭圆形,你需要更小的半径。
CGFloat imgSize = 55;
UIImageView *imgViewProfile = [[UIImageView alloc] init];
imgViewProfile.frame = CGRectMake(5, 5, imgSize, imgSize);
imgViewProfile.layer.cornerRadius = imgSize / 2;
imgViewProfile.clipsToBounds = YES;
imgViewProfile.contentMode = UIViewContentModeScaleAspectFill;
[view addSubview:imgViewProfile];