UIImageView IOS中间的透明圆

我需要使UIImageView在中间位置透明(Round Circle ..见附图) 在这里输入图像说明
我应该能够通过中间圈子看到UIImageView的子视图背后…我试过CAShapeLayer ..但我无法看到UIImageView的后面子视图。请帮助我..为我的英语…

CAShapeLayer *circleLayer = [CAShapeLayer layer]; // Give the layer the same bounds as your image view [circleLayer setBounds:CGRectMake(100.0f, 100.0f, [((UIImageView *)view) bounds].size.width, [((UIImageView *)view) bounds].size.height)]; // Position the circle anywhere you like, but this will center it // In the parent layer, which will be your image view's root layer [circleLayer setPosition:CGPointMake(100, 100)]; // Create a circle path. UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(100.0f, 100.0f, 50.0f, 50.0f)]; // Set the path on the layer [circleLayer setPath:[path CGPath]]; // Set the stroke color [circleLayer setStrokeColor:[[UIColor redColor] CGColor]]; // Set the stroke line width [circleLayer setLineWidth:2.0f]; // Add the sublayer to the image view's layer tree [circleLayer setOpacity:0.5]; [[((UIImageView *)view) layer] addSublayer:circleLayer]; 

一种方法是这样的。 我有一个图像视图与我的主图像,另一个图像称为BlackCircle,这只是一个40×40黑圈(我在Pixen应用程序中)。 这个动作方法使得主图像变成透明的,它和我放在主图像中心的黑色圆圈重叠在一起:

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

不要试图使Imageview的一部分透明,而是通过将相应的alpha设置为0来尝试在图像中使图像透明。