0

我正在尝试为 UIView 创建一个名为“CoverView”的自定义形状。

目前我将框架设置为...

    [CoverView setFrame:CGRectMake(0, 0, 1808, 303)];

我想为 UIView 创建一个自定义形状,以便从 UIView 的顶部中间切出 200x200。基本上,剪切的帧将是 (804, 0, 200, 200)。

任何帮助将不胜感激。

4

1 回答 1

2

我能够为 CoverView 创建一个遮罩,它在视觉上创建了我正在寻找的内容,但是由于 CoverView 仍在它们上方,因此无法按下视图遮罩下可以看到的任何按钮。代码如下。有什么建议可以使用视图孔中的按钮吗?

CGMutablePathRef maskPath = CGPathCreateMutable();
        CGPathMoveToPoint(maskPath, NULL, 0, 0);
        CGPathAddLineToPoint(maskPath, NULL, 804, 0);
        CGPathAddLineToPoint(maskPath, NULL, 804, 200);
        CGPathAddLineToPoint(maskPath, NULL, 1004, 200);
        CGPathAddLineToPoint(maskPath, NULL, 1004, 0);
        CGPathAddLineToPoint(maskPath, NULL, 1808, 0);
        CGPathAddLineToPoint(maskPath, NULL, 1808, 303);
        CGPathAddLineToPoint(maskPath, NULL, 0, 303);
        CGPathAddLineToPoint(maskPath, NULL, 0, 0);
        CGPathCloseSubpath(maskPath);

        CAShapeLayer *maskLayer = [CAShapeLayer layer];
        maskLayer.frame = CoverView.bounds;
        maskLayer.path = maskPath;
        CoverView.layer.mask = maskLayer;
于 2013-01-09T03:36:48.593 回答