我们前段时间实现了一个App,它在蒙面视图后面做了一个动画:
UIBezierPath *myBezierPath = myVectorDrawing.bezier;
CAShapeLayer *myShapeLayer = [CAShapeLayer layer];
myShapeLayer.path = myBezierPath.CGPath;
debugLog(@"wize: height%f width%f",myShapeLayer.frame.size.height, myShapeLayer.frame.size.width);
CAShapeLayer *maskWithHole = [CAShapeLayer layer];
maskWithHole.frame = self.mask.layer.bounds;
UIBezierPath *maskPath = [UIBezierPath bezierPath];
[maskPath moveToPoint:CGPointMake(CGRectGetMinX(maskWithHole.frame), CGRectGetMinY(maskWithHole.frame))];
[maskPath addLineToPoint:CGPointMake(CGRectGetMinX(maskWithHole.frame), CGRectGetMaxY(maskWithHole.frame))];
[maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(maskWithHole.frame), CGRectGetMaxY(maskWithHole.frame))];
[maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(maskWithHole.frame), CGRectGetMinY(maskWithHole.frame))];
[maskPath addLineToPoint:CGPointMake(CGRectGetMinX(maskWithHole.frame), CGRectGetMinY(maskWithHole.frame))];
[maskPath appendPath:myBezierPath];
[maskWithHole setPath:[maskPath CGPath]];
[maskWithHole setFillRule:kCAFillRuleEvenOdd];
[maskWithHole setFillColor:[[UIColor blackColor] CGColor]];
self.mask.layer.mask = maskWithHole;
self.mask.layer.masksToBounds = NO;
在所有设备/ iOS版本上,对于新的iPad Air没有任何问题,它在蒙版区域中有大量闪烁。由于64位架构,Apple是否改变了一些东西?
感谢任何帮助。
答案 0 :(得分:0)
它是7.1版本的iOS 7.0中的一个错误。它已修复。