Transparent Circle at Middle of UIImageView IOS

旧巷老猫 提交于 2019-12-06 07:14:44

One way to do it is like this. I have an image view with my main image, and another image called BlackCircle which is just a 40x40 black circle (that I made in the Pixen app). The action method causes the main image to become transparent where it is overlapped by the black circle, which I've placed in the center of the main image:

@interface ViewController ()
@property (weak,nonatomic) IBOutlet UIImageView *imageView;
@end

@implementation ViewController

-(void)viewDidLoad {
    [super viewDidLoad];
    self.imageView.image = [UIImage imageNamed:@"House.tiff"];
    self.imageView.backgroundColor = [UIColor clearColor];
}


-(IBAction)createAlphaClippedImage:(id)sender {
    UIImage *circleImage = [UIImage imageNamed:@"BlackCircle.png"];
    UIImage *mainImage = [UIImage imageNamed:@"House.tiff"];

    UIGraphicsBeginImageContextWithOptions(mainImage.size, NO, 0.0);

    CGRect imageRect = CGRectMake(0.0f, 0.0f, mainImage.size.width, mainImage.size.height);
    CGRect centerCircleRect = CGRectMake(mainImage.size.width/2.0 - circleImage.size.width/2.0, mainImage.size.height/2.0 - circleImage.size.height/2.0,circleImage.size.width,circleImage.size.height);

    [mainImage drawInRect:imageRect];
    [circleImage drawInRect:centerCircleRect blendMode:kCGBlendModeXOR alpha:1.0];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    self.imageView.image = image;
}

Instead of trying to make a portion of Imageview transparent, try to make in image transparent at areas you want it to by setting corresponding alphas to 0.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!