【问题标题】:Masking Content of a UIView屏蔽 UIView 的内容
【发布时间】:2014-09-04 06:07:33
【问题描述】:

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

我正在使用网络视图并想删除视图的顶部圆角,如下图所示 -

问题 -

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

我尝试过的 -

我尝试在 Web 视图之上添加一个图像视图并在其之上添加一个遮罩层,但这似乎对我不起作用 -

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 的建议,我尝试在 web 视图之上使用不透明视图。

 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

【问题讨论】:

    标签: ios objective-c uiview uiwebview


    【解决方案1】:

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

    只需在要隐藏的区域上方添加一个不透明视图。不需要口罩。例如

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

    【讨论】:

    • 透明不透明视图是可能的??
    • 我试过用这个但没用。仍在该视图后面显示内容
    • 您是否为视图设置了背景色?否则它只是 clearcolor
    • @rishi “透明不透明”视图可以通过将 alpha 设置为 0.0 到 1.0 之间的值来实现。
    • 不想要任何颜色,想要一种透明的效果。只是隐藏该区域没有任何颜色。
    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 2011-07-24
    • 2011-03-04
    • 2018-09-16
    • 2019-04-14
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多