IOS:创建一个带圆角的UIImage或UIImageView

Cra*_*Dev 98 objective-c rounded-corners uiimage ios

是否可以创建一个圆角UIImageUIImageView圆角?因为我想拿一个UIImage并在里面展示它UIImageView,但我不知道该怎么做.

yin*_*kou 232

对的,这是可能的.
导入QuartzCore (#import <QuartzCore/QuartzCore.h>)标题并使用的layer属性UIImageView.

yourImageView.layer.cornerRadius = yourRadius;
yourImageView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅CALayer类参考.

  • 别忘了激活`clipToBounds`.`yourImageView.clipsToBounds = YES;` (9认同)

Mur*_*hna 54

尝试使用此代码进行圆形图像导入QuartzCore框架 创建圆形图像的简单方法

imageView.layer.backgroundColor=[[UIColor clearColor] CGColor];
imageView.layer.cornerRadius=20;
imageView.layer.borderWidth=2.0;
imageView.layer.masksToBounds = YES;
imageView.layer.borderColor=[[UIColor redColor] CGColor];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Sav*_*dar 47

Objective-C的

-(UIImage *)makeRoundedImage:(UIImage *) image 
                      radius: (float) radius;
{
  CALayer *imageLayer = [CALayer layer];
  imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height);
  imageLayer.contents = (id) image.CGImage;

  imageLayer.masksToBounds = YES;
  imageLayer.cornerRadius = radius;

  UIGraphicsBeginImageContext(image.size);
  [imageLayer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return roundedImage;
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

func makeRoundedImage(image: UIImage, radius: Float) -> UIImage {
    var imageLayer = CALayer()
    imageLayer.frame = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
    imageLayer.contents = image.cgImage

    imageLayer.masksToBounds = true
    imageLayer.cornerRadius = radius

    UIGraphicsBeginImageContext(image.size)
    imageLayer.render(in: UIGraphicsGetCurrentContext())
    var roundedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return roundedImage
}
Run Code Online (Sandbox Code Playgroud)


小智 9

uiimageview.layer.cornerRadius = uiimageview.frame.size.height/2;
uiimageview.clipToBounds = YES;

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

  • @Mark`uiimageview.frame.size.height/2;`是一个真正的宝石,使图像完美的圆形,一个完整的圆形. (3认同)
  • 这与其他答案有何不同? (2认同)