2015-09-01 17 views
7

Ich bin neu in der IOS-Entwicklung. In Windows Phone-Entwicklung verwenden wir, um einen Stil (Aussehen, z. B.) des Schaltflächen-Steuerelements in App Global zu definieren und verwenden Sie einfach diesen Stil irgendwo auf einer beliebigen Schaltfläche in der App durch Zuweisen der Stileigenschaft.Styling-Tasten in IOS Xcode

Gibt es etwas ähnliches in IOS XCode? Ich weiß, dass ich die Schaltfläche in den Eigenschaften- und Aussehenfenstern in XCode anpassen kann. Aber auf diese Weise muss ich jedem ähnlichen Knopf in der App Stil verleihen. und wenn es irgendeine Veränderung gibt, muss ich sie überall ändern. Was machen IOS-Entwickler in solchen Situationen?

+4

Sie können UIButton von der Unterklasse ableiten. Und wenn Sie eine Schaltfläche benötigen, schreiben Sie 'var myButton = MyCustomButton()' anstelle von 'var myButton = UIButton()' –

Antwort

4

Wenn Sie alle Tasten in Ihrer Anwendung in einem stylen mögen Standard Weg, dann würden Sie den Aussehen Proxy für UIButton stylen. Sie erhalten einen, indem Sie die Klassenmethode UIButton.appearance() aufrufen und dann den zurückgegebenen Wert so formatieren, wie Ihre Schaltflächen aussehen sollen. Sie können auch eine feinkörnigere Erscheinung erreichen, indem Sie Methoden wie UIButton.appearanceWhenContainedIn() aufrufen.

+0

das ist ordentlich. Gibt es eine Möglichkeit, dies über die Xcode-Benutzeroberfläche statt programmgesteuert zu tun? Ich möchte einen Button stylen und ihn irgendwie zu einer wiederverwendbaren "Klasse" machen (wie in der CSS-Klasse). – scottyseus

+0

Leider nein, zumindest kein eingebauter Weg. Sie können eine Ansicht von einer XIB laden und deren Eigenschaften verwenden, um den App-weiten Darstellungsproxy für seine Klasse festzulegen. – NRitH

3

Erstellen Sie eine UIButton-Unterklasse. Zum Beispiel für eine UIButton mit abgerundeten Ecken zu schaffen und eine Grenze:

Header-Datei

#import <Foundation/Foundation.h> 

@interface XYRoundedCornerButton : UIButton 
@end 

Implementierungsdatei

...import headers etc... 
@implementation XYRoundedCornerButton 

- (void)awakeFromNib { 
    [super awakeFromNib]; 
    self.layer.cornerRadius = 8.0f; 
    self.layer.masksToBounds = YES; 
    self.layer.borderRadius = 1.0f; 
    self.layer.borderColor = UIColor.redColor; 
} 

@end 
2

Wenn Sie Storyboard verwenden, müssen Sie in der Klasse keinen Code hinzufügen. Ziehen Sie einfach eine Schaltfläche und stellen Sie alle gewünschten Eigenschaften ein, ob Hintergrundfarbe, Eckenradius usw., was immer Sie wollen. Kopieren Sie es dann und fügen Sie es an beliebiger Stelle ein oder wählen Sie die Schaltfläche ALT + DRAG.