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

时间:2013-01-08 23:25:39

标签: ios4 uiview ios5 cgrectmake

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

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

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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;