IOS: create a UIImage or UIImageView with rounded corners

后端 未结 12 769
执笔经年
执笔经年 2020-12-07 07:26

Is it possible create an UIImage or an UIImageView with rounded corners? Because I want take an UIImage and show it inside an UI

12条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-07 08:13

    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;
    }
    

    Swift 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
    }
    

提交回复
热议问题