2016-04-22 6 views
0

Ich versuche, eine Reihe von UILabel s fett, und dachte, es könnte mit etwas wie eine CSS-Klasse getan werden. Der einzige Weg, dachte ich an, obwohl ist Subklassen UILabel und das Hinzufügen sie als benutzerdefinierte Klasse zu jedem Etikett:So ändern Sie die Eigenschaften mehrerer UI-Elemente

import UIKit 

class BoldLabel: UILabel { 
    override internal var font: UIFont? { 
     get { 
      return UIFont.boldSystemFontOfSize(16.0) 
     } 
    } 
} 

Aber das gibt einen Fehler „Getter für‚font‘mit Objective-C-Selektor‚font‘Konflikte mit Getter für 'font' aus der Oberklasse 'UILabel' mit demselben Objective-C selector ". Gibt es eine Möglichkeit, dies so zu machen, oder eine andere Möglichkeit, um eine Reihe von Etikettenschriften fett zu machen?

+1

prüfen Link http://sunnycyk.com/2014/10/ios-subclass-uilabel-swift/, machen sie eine Unterklasse von UILabel wie du. Dann rufen sie eine Setup-Methode auf, um das UILabel anzupassen; In dieser Setup-Methode können Sie Folgendes tun: self.font = UIFont.boldSystemFontOfSize (12) Wenn Sie dann diese Klasse Ihren UILabels zuweisen, werden sie fett dargestellt. – AnthonyR

+0

@AnthonyRn Das ist genau das, was ich brauchte, sehr einfach. Wenn du eine Antwort postest, kann ich sie akzeptieren – mjr

+0

Warte, ich zeige dir ein kleines Beispiel – AnthonyR

Antwort

2
import UIKit 

class BoldLabel: UILabel { 

//This method is call when you affect this class to a UILabel in your STORYBOARD 
required init?(coder aDecoder: NSCoder) { 
    super.init(coder:aDecoder) 
    self.setup() 
} 

//This method is call when you programatically create an instance of this UILabel class 
override init(frame:CGRect) { 
    super.init(frame:frame) 
    self.setup() 
} 

func setup() { 
    //All custom properties of this label class here 
    self.font = UIFont.boldSystemFontOfSize(28) 
} 
} 

Ergebnisse mit UILabels von Storyboard:

enter image description here