1

次のように、 GLKView のバッキングレイヤーへのマスクとして CAShapeLayer を使用しようとしています。

CGRect circleFrame = CGRectMake(0, 0, 800, 800);
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:circleFrame];
CGPoint circleAnchor = CGPointMake(CGRectGetMidX(circleFrame) / CGRectGetMaxX(circleFrame),CGRectGetMidY(circleFrame) / CGRectGetMaxY(circleFrame));

shapeLayerMask = [[CAShapeLayer alloc] init];
shapeLayerMask.path = path.CGPath;
shapeLayerMask.anchorPoint = circleAnchor;
shapeLayerMask.frame = CGRectMake(0, 0,800, 800);
shapeLayerMask.fillColor = [UIColor blackColor].CGColor;

shapeLayerMask.backgroundColor = [UIColor clearColor].CGColor;
shapeLayerMask.opacity = 1.0f;
shapeLayerMask.hidden = NO;

self.view.layer.mask = shapeLayerMask;

しかし、これを行うとすぐに、すべてのタッチ イベントの発生が停止します。touchesBegan、touchesEnded などはもうありません。理由を知っている人はいますか? 前もって感謝します!

4

0 に答える 0