在我的应用程序中,我通过UIView
继承简单的UIView 来进行透视.但是,如果我尝试使用相同的UIVisualEffectView
,我无法做到.
以下是我使用普通能够做到的事情UIView
:
当我使用UIVisualEffectView
代替绿色时UIView
,我看不到通过UIView看到,即使看到通过UIView
添加到UIVisualEffectView
as subview
.
码:
- (void)drawRect:(CGRect)rect { //this is same for the UIVIew and for the UIVisualEffectView [super drawRect:rect]; CGContextRef context = UIGraphicsGetCurrentContext(); // Clear any existing drawing on this view // Remove this if the hole never changes on redraws of the UIView CGContextClearRect(context, self.bounds); // Create a path around the entire view UIBezierPath *clipPath = [UIBezierPath bezierPathWithRect:self.bounds]; // Your transparent window. This is for reference, but set this either as a property of the class or some other way CGRect transparentFrame; // Add the transparent window UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:transparentFrame cornerRadius:5.0f]; [clipPath appendPath:path]; // NOTE: If you want to add more holes, simply create another UIBezierPath and call [clipPath appendPath:anotherPath]; // This sets the algorithm used to determine what gets filled and what doesn't clipPath.usesEvenOddFillRule = YES; // Add the clipping to the graphics context [clipPath addClip]; // set your color UIColor *tintColor = [UIColor greenColor]; // (optional) set transparency alpha CGContextSetAlpha(context, 0.7f); // tell the color to be a fill color [tintColor setFill]; // fill the path [clipPath fill]; }
问题:为什么这不起作用UIVisualEffectView
?