2017-12-16 14 views

答えて

2

私は最も簡単な方法は、平らなUIViewインスタンスとして2つの円を作成し、それらの中心を親ビューの左右の端としてそれぞれ設定することだと思います。

clipsToBoundstrueに設定されているため、クリップされ、その半分だけが画面に表示されます。

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

+0

はどうもありがとうございます...それは働いていました。.. –

関連する問題