2017-08-20 5 views
0

Ich bin Swift sehr neu. Ich versuche, funcSwift 4 Funktionen Tasteneigenschaften

func roundedButton(buttonik: String) {  
    buttonik.clipsToBounds = true 
    buttonik.layer.cornerRadius = 10 
    buttonik.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner] 
} 

als es nennen

roundedButton(buttonik: "buttonTop") 

und haben diese Ausgabe

buttonTop.clipsToBounds = true 
buttonTop.layer.cornerRadius = 10 
buttonTop.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner] 

ich diese Fehler

Value of type 'String' has no member 'clipsToBounds' 
Value of type 'String' has no member 'layer' 

Sie bin immer zu erstellen Danke :)

Antwort

0

Ich glaube, das Problem ist, dass Sie den Namen einer Schaltfläche mit dem Objekt verwechseln, das diese Schaltfläche darstellt. Ändern Sie Ihre Routine:

func roundedButton(button: UIButton) {  
    button.clipsToBounds = true 
    button.layer.cornerRadius = 10 
    button.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner] 
} 

es dann aufrufen, indem Sie auf den Button vorbei Sie diese Eigenschaften anwenden möchten ... statt es eine Reihe von übergeben.

0

Es sieht so aus als ob Sie erwarten, dass Ihr buttonik Parameter ein UIButton ist, aber Sie deklarieren es als String. Da String die Eigenschaften, die Sie ändern möchten, nicht unterstützt, erhalten Sie Kompilierungsfehler. Wenn Sie es stattdessen als UIButton deklarieren, sollte Ihr Code kompilieren.

+0

Nun, sie müsste auch das eigentliche Button-Objekt anstelle des Namens der Variablen als 'String' übergeben. – Keiwan