我正在试图弄清楚如何掩盖UIView以显示一个形状,该形状代表一个坐在其上的半圆形的正方形.
基本上,就像将边界半径仅应用于顶部两个角以将它们圆化并创建弧形.
我正在使用swift,这让我发疯了.
编辑:CornerRadius没有做我想要的.我觉得我必须使用CGShapeLayer,但我不确定如何创建弧.
EDIT3:
考虑解释我想要什么,提供图片,并解释我不理解我需要做什么,或者我需要做什么对某些人来说是不够的,这是我尝试过的:
尝试设置layer.cornerRadius属性,同时将视图的底部推出屏幕以隐藏底角不会出现切断,这种类型的遮蔽太圆形并且没有提供正确的圆弧效果.
我尝试使用UIBezierPath设置前两个角来使用视图的cornerRadii width / 2.这也没有产生适当的结果.在尝试将值硬编码到cornerRadii中时,我注意到无论值如何,我似乎无法获得我想要的结果.
还有哪些其他选择?或者我只是错误地使用BezierPath?
编辑4:
这是我的原始代码.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let bezierPath = UIBezierPath(roundedRect: navBarView.bounds, byRoundingCorners: [.TopLeft, .TopRight], cornerRadii: CGSizeMake(navBarView.bounds.width / 2, navBarView.bounds.width / 2)).CGPath;
let shapeLayer = CAShapeLayer();
shapeLayer.bounds = navBarView.bounds
shapeLayer.path = bezierPath
navBarView.layer.mask = shapeLayer
updateUI() // <-- Label text, etc.
}
Run Code Online (Sandbox Code Playgroud)
此外,如前所述,曾尝试过 navBarView.layer.cornerRadius = x