相关疑难解决方法(0)

圆形视图的右上角和左上角?

我正在试图弄清楚如何掩盖UIView以显示一个形状,该形状代表一个坐在其上的半圆形的正方形.

基本上,就像将边界半径仅应用于顶部两个角以将它们圆化并创建弧形.

我正在使用swift,这让我发疯了.

编辑:CornerRadius没有做我想要的.我觉得我必须使用CGShapeLayer,但我不确定如何创建弧.

EDIT2: 在此输入图像描述

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

cashapelayer ios uibezierpath swift

-1
推荐指数
1
解决办法
4324
查看次数

标签 统计

cashapelayer ×1

ios ×1

swift ×1

uibezierpath ×1