掩盖UIView的内容

时间:2014-07-14 10:34:47

标签: ios objective-c uiview uiwebview

是否可以屏蔽视图的某个区域,以便该部分的内容变得不可见/隐藏。

我正在使用网页视图,想删除视图的顶部圆角,如下图所示 - enter image description here

问题 -

我想删除/隐藏红色区域以下的所有内容。

我尝试了什么 -

我曾尝试在网页视图顶部添加图片视图,并在其上添加了一个遮罩图层,但这对我来说似乎不起作用 -

UIImageView *maskImage = [[UIImageView alloc] init];
maskImage.frame = CGRectMake(256, -10, 64, 64);
maskImage.image = [UIImage imageNamed:@"maskingImage"];
[self.webView addSubview: maskImage];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGRect maskRect = whitefoldMaskImage.frame;//CGRectMake(0, 0, 50, 100);

CGPathRef path = CGPathCreateWithRect(maskRect, NULL);
maskLayer.path = path;
CGPathRelease(path);

maskImage.layer.mask = maskLayer;

编辑1 -

根据Mundi的建议,我在网络视图上尝试了不透明视图。

 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(256, -10, 64, 64)];
 view.opaque = YES;
 [self.webView addSubview:view];

但这也没有奏效。

我也经历了关于SO的跟踪线程,但没有找到任何解决方案 -

CALayer: add a border only at one side

Simply mask a UIView with a rectangle

1 个答案:

答案 0 :(得分:0)

  

我想删除/隐藏红色区域以下的所有内容。

只需在要隐藏的区域上方添加不透明视图即可。不需要面具。 E.g。

UIView *cover = [[UIView alloc] initWithFrame:topRightCornerFrame];
cover.backgroundColor = [UIColor whiteColor];
[webView addSubView:cover];