如何在UIImageview中绘制椭圆形状

时间:2014-05-21 09:25:16

标签: ios iphone objective-c

我想画一个椭圆形的UIImageView。我试图绘制,但我云找不到答案。我显示大部分圆形或圆形。
enter link description here 我试试这个,但这不是工作

#import <QuartzCore/QuartzCore.h>`
 CALayer *imageLayer = YourImageview.layer;
            [imageLayer setCornerRadius:5];
            [imageLayer setBorderWidth:1];
            [imageLayer setMasksToBounds:YES];

enter image description here

3 个答案:

答案 0 :(得分:8)

如果要绘制椭圆形的图像视图,请按照以下步骤操作:

  1. 使用 bezierPathWithOvalInRect

    创建UIBezierPath
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:YOUR_RECT];
    
  2. 使用 CAShapeLayer

    创建遮罩层
    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    
  3. 现在将bezier路径设置为遮罩层的路径

    maskLayer.path = path.CGPath;
    
  4. 然后我们将使用我们自己的遮罩层来掩盖我们的视图。

    YourImageview.layer.mask = maskLayer;
    
  5. 这就是全部。试试吧。

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