Ios4 iPhone SDK通过裁剪UIView创建自定义形状的UIView

Ios4 iPhone SDK通过裁剪UIView创建自定义形状的UIView,ios4,uiview,ios5,cgrectmake,Ios4,Uiview,Ios5,Cgrectmake,我正在尝试为UIView创建一个名为“CoverView”的自定义形状 目前我已将框架设置为 [CoverView setFrame:CGRectMake(0, 0, 1808, 303)]; 我想为UIView创建一个自定义形状,以便从UIView的中上部剪切200x200。基本上,剪切将有一个(804,0,200,200)帧 任何帮助都将不胜感激。我能够为CoverView创建一个遮罩,它在视觉上创建了我正在寻找的内容,但视图遮罩下任何可以看到的按钮都无法按下,因为CoverVie

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

目前我已将框架设置为

    [CoverView setFrame:CGRectMake(0, 0, 1808, 303)];
我想为UIView创建一个自定义形状,以便从UIView的中上部剪切200x200。基本上,剪切将有一个(804,0,200,200)帧


任何帮助都将不胜感激。

我能够为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;

UIView始终是矩形的,但可能会添加一个子视图,该子视图具有与coverview后面的背景相匹配的背景?我的coverview阻止了很多按钮,我不想在应用程序中的某些操作期间触摸这些按钮,但coverview阻止了一个按钮,需要使用这些按钮。我明白你说的关于添加另一个子视图,或者在我的例子中,在CoverView中添加另一个按钮。我希望我能以某种方式改变CoverView来实现我的想法。我可以遮住CoverView,但下面的按钮仍然无法使用。请参阅下面的代码…我曾根据需要通过编程更改按钮和CoverView的顺序,但它的外观仍不符合我的要求,但其功能与所需的一样。