我试图用swift中的圆形CAShapeLayer掩盖方形UIView.我有以下内容:
var snapFrame = self.snapButton.frame
var innerFrame = CGRect(x: snapFrame.minX + 1, y: snapFrame.minY + 1, width: snapFrame.width - 2, height: snapFrame.height - 2)
maskLayer = CAShapeLayer()
var circlePath = UIBezierPath(roundedRect: innerFrame, cornerRadius: innerFrame.width)
maskLayer.path = circlePath.CGPath
maskLayer.fillColor = UIColor.clearColor().CGColor
shutterOverlay = UIView()
shutterOverlay.frame = innerFrame
shutterOverlay.backgroundColor = BUBConstants.primaryColor_blue
self.view.addSubview(shutterOverlay)
self.view.layer.addSublayer(maskLayer)
shutterOverlay.layer.mask = maskLayer
Run Code Online (Sandbox Code Playgroud)
如果我注释掉最后两行,则图层和视图都会显示在正确的位置和正确的大小.但是,添加最后一行会导致视图和图层都不显示.
此外,我需要这样做,因为我的最终目标是制作一个动画,其中方形UIView填充圆圈.我不能只显示一个圆形视图.
谁能指出我哪里出错了?
Tho*_*cic 12
你需要像这样将面具添加到shutterOverlay
shutterOverlay.layer.addSublayer(maskLayer)
Run Code Online (Sandbox Code Playgroud)
而不是视图的图层.
掩码需要是它想要掩盖的层的子层.
归档时间: |
|
查看次数: |
12876 次 |
最近记录: |