在视网膜 iPad 上应用图层蒙版会隐藏所有
Posted
技术标签:
【中文标题】在视网膜 iPad 上应用图层蒙版会隐藏所有【英文标题】:Applying a layer mask on the retina iPad hides all 【发布时间】:2012-11-09 13:08:43 【问题描述】:我有一个 UIView,我对其应用了图层蒙版。它适用于除视网膜 iPad 之外的所有设备。在视网膜 iPad 上,被遮盖的视图不显示。如果我取下遮罩,视图会显示在视网膜 iPad 上。
面具很简单。它显示了整个视图,除了从底部边缘取出的一个小三角形。
contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] applicationFrame].size.width, [[UIScreen mainScreen] applicationFrame].size.height - 50.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGMutablePathRef path = CGPathCreateMutable();
float triangleDepth = 10;
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddLineToPoint(path, NULL, contentView.frame.size.width, 0);
CGPathAddLineToPoint(path, NULL, contentView.frame.size.width, contentView.frame.size.height);
CGPathAddLineToPoint(path, NULL, (contentView.frame.size.width / 2.0) + triangleDepth, contentView.frame.size.height);
CGPathAddLineToPoint(path, NULL, (contentView.frame.size.width / 2.0), contentView.frame.size.height - triangleDepth);
CGPathAddLineToPoint(path, NULL, (contentView.frame.size.width / 2.0) - triangleDepth, contentView.frame.size.height);
CGPathAddLineToPoint(path, NULL, 0, contentView.frame.size.height);
CGPathCloseSubpath(path);
[maskLayer setPath:path];
CGPathRelease(path);
contentView.layer.mask = maskLayer;
contentView.clipsToBounds = NO;
[self.view addSubview:contentView];
这段代码适用于所有设备,那么视网膜 iPad 有什么不同会阻止它工作?
【问题讨论】:
【参考方案1】:这只是 ios 模拟器的问题。我终于在视网膜 iPad 上尝试了代码,一切正常。
【讨论】:
以上是关于在视网膜 iPad 上应用图层蒙版会隐藏所有的主要内容,如果未能解决你的问题,请参考以下文章