2016-11-22 4 views
0

Ich versuche einen Knopf zu erstellen, der halbkreisförmig ist.Eine beliebige Größe Knopf machen?

Innen Schaltfläche Klasse

layoutSubviews() { 
    createSemiCirclePath() 
} 

func createSemiCirclePath(){ 
     self.translatesAutoresizingMaskIntoConstraints = false 
     self.clipsToBounds = true 
     semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath 
     self.layer.addSublayer(semiCircleShape) 
     self.layer.masksToBounds = true 

    } 

Ich erhalte dieses:

enter image description here

Aber ich möchte wie folgt aus:

enter image description here

Wenn ich

bin versucht,
func createSemiCirclePath(){ 
     self.translatesAutoresizingMaskIntoConstraints = false 
     self.clipsToBounds = true 
     semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath 
     self.layer.mask = semiCircleShape 
     self.layer.masksToBounds = true 

    } 

Meine Taste ist

enter image description here

Es ist auch unter 50% der Höhe der Schaltfläche klicken ermöglicht, die ich nicht brauche.

(in 1-Code)

Das Problem ist, nur der schwarze Teil sollte Klick der Lage sein und blauer Bereich ausgeblendet werden soll, das heißt, es sollte auf die Unterschicht befestigen.

Jeder Vorschlag wird geschätzt. Danke.

+0

Bitte überprüfen Sie diese http://stackoverflow.com/questions/1561585/iphone-button-with-non-rectangle-shape –

+0

möglich Duplikat http://stackoverflow.com/a/33310108/5215474 – Saranjith

+0

Ja, aber die Schaltfläche mit dem vollständigen Rechteck kann nicht nur auf den Halbkreisbereich geklickt werden. –

Antwort

0

Möglicherweise können Sie UIControl-Klasse Unterklasse, es Klasse enthält Methoden zur Behandlung von Berührungsereignissen auch es Klasse behandeln Ziel/Auswahlroutine.
Auch diese Klasse enthält keine benutzerdefinierte Zeichenlogik als UIButton. In Ihrem Beispiel sollten Sie nur UIControl erweitern und fügen Sie

controlInstance.backgroundColor = [UIColor clearColor]; 
+0

Nein, erbt direkt von der UIButton-Klasse. –

+0

Ist das nicht deine Klasse? –

+0

Klasse SemiCircle: UIButton das ist meine Klasse –

Verwandte Themen