2017-09-28 2 views
0

Ich habe zwei UIViews, die beim Überlappen eine eindeutige Form erstellen, und ich möchte einen Rahmen um die kombinierten Ansichten zeichnen.So zeichnen Sie einen Rahmen um zwei überlappende UIViews

Was ist die richtige Methode dafür?

Die UIViews sind:

  1. Kreis Bild Ansicht
  2. Ein Rechteck Ansicht, die ein Benutzerprofil Bild anzuzeigen, werden Profildatencontainer Benutzer (Name, Geburtsdatum, etc.)

Hier ist ein Bild davon, wie die beiden zusammen aussehen: enter image description here

Antwort

0

Ok herausgefunden, indem Sie Folgendes tun:

  1. eine Grenze auf dem Rechteck UIView Einstellung
  2. Erstellen eines CAShapeLayer mit UIBezierPath einen Halbkreis zu ziehen und es auf den Kreis UIView's Schicht in der drawRect Methode hinzufügen:

    Überschreibung func draw (_ rect: CGRect) { super.draw (rect)

    let shapeLayer = CAShapeLayer() 
    let topSemiCirclePath = UIBezierPath(arcCenter: userImageView.center, radius: userImageView.bounds.size.width/2.0, startAngle: CGFloat(Double.pi), endAngle: CGFloat(Double.pi/180), clockwise: true) 
    topSemiCirclePath.lineWidth = 2.0 
    UIColor.lightGray.setStroke() 
    topSemiCirclePath.stroke() 
    shapeLayer.path = topSemiCirclePath.cgPath 
    userImageView.layer.addSublayer(shapeLayer) 
    

    }
Verwandte Themen