如何在swift中剪切uiview的边缘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在swift中剪切uiview的边缘相关的知识,希望对你有一定的参考价值。

enter image description here

我附上了查看图片。我想在购买按钮和上面的航班信息视图之间实现底部的小切。

答案

我认为最简单的方法是创建2个圆作为普通的UIView实例,并将它们的中心分别设置为父视图的左右边缘。

由于您将clipsToBounds设置为true,它们将被剪裁,并且屏幕上只能显示其中一半。

public class TestView: UIView {

    private let leftCircle = UIView(frame: .zero)
    private let rightCircle = UIView(frame: .zero)

    public var circleY: CGFloat = 0
    public var circleRadius: CGFloat = 0

    public override init(frame: CGRect) {
        super.init(frame: frame)
        clipsToBounds = true
        addSubview(leftCircle)
        addSubview(rightCircle)
    }

    public override func layoutSubviews() {
        super.layoutSubviews()

        leftCircle.frame = CGRect(x: -circleRadius, y: circleY,
                                  width: circleRadius * 2 , height: circleRadius * 2)
        leftCircle.layer.masksToBounds = true
        leftCircle.layer.cornerRadius = circleRadius

        rightCircle.frame = CGRect(x: bounds.width - circleRadius, y: circleY,
                                   width: circleRadius * 2 , height: circleRadius * 2)
        rightCircle.layer.masksToBounds = true
        rightCircle.layer.cornerRadius = circleRadius
    }
}

我创造了一个sample project来证明这一点。以下是它在我的模拟器中的外观(iPhone SE 11.2):

enter image description here

以上是关于如何在swift中剪切uiview的边缘的主要内容,如果未能解决你的问题,请参考以下文章

在swift 3中获取与边缘的距离

如何在 UIView 中剪切路径?

如何使用 Swift 通过代码库增加和减少 UIView 高度

如何在我的触摸位置获取层次结构中的所有视图 - Swift

Swift:链式 UIView 动画永远重复? Obj-C 代码不可移植

如何在Swift中以编程方式从另一个图像中剪切徽标的形状(png图像)?