Suche…


Einführung

UIButton : UIControl fängt Berührungsereignisse ab und sendet beim Tippen eine Aktionsnachricht an ein Zielobjekt. Sie können den Titel, das Bild und andere Darstellungseigenschaften einer Schaltfläche festlegen. Darüber hinaus können Sie für jeden Schaltflächenstatus ein anderes Erscheinungsbild angeben.

Bemerkungen

Schaltflächentypen

Der Typ einer Schaltfläche bestimmt das grundlegende Erscheinungsbild und Verhalten. Nachdem Sie eine Schaltfläche erstellt haben, können Sie ihren Typ nicht ändern. Die am häufigsten verwendeten Schaltflächentypen sind "Benutzerdefiniert" und "Systemtyp", verwenden Sie jedoch gegebenenfalls die anderen Typen

  • UIButtonTypeCustom

    No button style.
    
  • UIButtonTypeSystem

    A system style button, such as those shown in navigation bars and toolbars.
    
  • UIButtonTypeDetailDisclosure

    A detail disclosure button.
    
  • UIButtonTypeInfoLight

    An information button that has a light background.
    
  • UIButtonTypeInfoDark

    An information button that has a dark background.
    
  • UIButtonTypeContactAdd

    A contact add button.
    

Beim Erstellen einer benutzerdefinierten Schaltfläche - das ist eine Schaltfläche mit dem benutzerdefinierten Typ - wird der Rahmen der Schaltfläche anfänglich auf (0, 0, 0, 0) gesetzt. Bevor Sie die Schaltfläche zu Ihrer Benutzeroberfläche hinzufügen, sollten Sie den Frame auf einen angemesseneren Wert aktualisieren.

Erstellen eines UIButton

UIButtons können in einem Frame initialisiert werden:

Schnell

let button = UIButton(frame: CGRect(x: x, y: y, width: width, height: height)

Ziel c

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)];

Ein bestimmter UIButton-Typ kann wie folgt erstellt werden:

Schnell

let button = UIButton(type: .Custom) 

Ziel c

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

wobei type ein UIButtonType :

enum UIButtonType : Int {
    case Custom
    case System
    case DetailDisclosure
    case InfoLight
    case InfoDark
    case ContactAdd
    static var RoundedRect: UIButtonType { get }
}

Titel einstellen

Schnell

button.setTitle(titleString, forState: controlState)

Ziel c

[button setTitle:(NSString *) forState:(UIControlState)];

So legen Sie den Standardtitel auf "Hallo, Welt!"

Schnell

button.setTitle("Hello, World!", forState: .normal)

Ziel c

[button setTitle:@"Hello, World!" forControlState:UIControlStateNormal];

Titelfarbe einstellen

//Swift
button.setTitleColor(color, forControlState: controlState)

//Objective-C
[button setTitleColor:(nullable UIColor *) forState:(UIControlState)];

Um die Titelfarbe auf Blau zu setzen

//Swift
button.setTitleColor(.blue, for: .normal)

//Objective-C
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]

Inhalte horizontal ausrichten

Schnell

//Align contents to the left of the frame
button.contentHorizontalAlignment = .left

//Align contents to the right of the frame
button.contentHorizontalAlignment = .right

//Align contents to the center of the frame
button.contentHorizontalAlignment = .center

//Make contents fill the frame
button.contentHorizontalAlignment = .fill

Ziel c

//Align contents to the left
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

//Align contents to the right
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;

//Align contents to the center
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

//Align contents to fill the frame
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;

Titelbezeichnung abrufen

Das darunterliegende Titeletikett kann, sofern vorhanden, mit abgerufen werden

Schnell

var label: UILabel? = button.titleLabel

Ziel c

UILabel *label = button.titleLabel;

Hiermit kann beispielsweise die Schriftart der Titelbezeichnung festgelegt werden

Schnell

button.titleLabel?.font = UIFont.boldSystemFontOfSize(12)

Ziel c

button.titleLabel.font = [UIFont boldSystemFontOfSize:12];

Deaktivieren eines UIButton

Eine Schaltfläche kann mit deaktiviert werden

Schnell

myButton.isEnabled = false

Ziel c:

myButton.enabled = NO;

Die Schaltfläche wird grau dargestellt:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie nicht möchten, dass sich die Schaltfläche beim adjustsImageWhenDisabled der Schaltfläche ändert, setzen Sie " adjustsImageWhenDisabled auf " false / NO

Hinzufügen einer Aktion zu einem UIButton über Code (programmgesteuert)

Um einer Schaltfläche eine Methode hinzuzufügen, erstellen Sie zuerst eine Aktionsmethode:

Ziel c

-(void)someButtonAction:(id)sender {
  // sender is the object that was tapped, in this case its the button.
    NSLog(@"Button is tapped"); 
}

Schnell

func someButtonAction() {
    print("Button is tapped")
}

Um diese Aktionsmethode jetzt zu Ihrer Schaltfläche hinzuzufügen, müssen Sie die folgende Codezeile schreiben:

Ziel c

[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];

Schnell

yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .TouchUpInside)

Für den Parameter ControlEvents sind alle Member von ENUM UIControlEvents gültig.

Schriftart einstellen

Schnell

myButton.titleLabel?.font =  UIFont(name: "YourFontName", size: 20)

Ziel c

myButton.titleLabel.font = [UIFont fontWithName:@"YourFontName" size:20];

Anhängen einer Methode an eine Schaltfläche

Um einer Schaltfläche eine Methode hinzuzufügen, erstellen Sie zuerst eine Aktionsmethode:

Ziel c

-(void) someButtonAction{
    NSLog(@"Button is tapped");

}

Schnell

func someButtonAction() {
        print("Button is tapped")
    }

Um diese Aktionsmethode jetzt zu Ihrer Schaltfläche hinzuzufügen, müssen Sie die folgende Codezeile schreiben:

Ziel c

[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];

Schnell

yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .touchUpInside)

Für ControlEvents sind alle Mitglieder von ENUM UIControlEvents gültig.

Ermitteln Sie die Größe von UIButton streng nach Text und Schriftart

Verwenden Sie die Funktion intrinsicContentSize um die genaue Größe eines UIButton-Textes basierend auf seiner Schriftart zu ermitteln.

Schnell

button.intrinsicContentSize.width

Ziel c

button.intrinsicContentSize.width;

Bild einstellen

Schnell

button.setImage(UIImage(named:"test-image"), forState: .normal)

Ziel c

[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateNormal];

Mehrere Kontrollzustände

Sie können auch ein Bild für mehrere UIControlStates , um beispielsweise dasselbe Bild für den Status " Selected und " Highlighted UIControlStates :

Schnell

button.setImage(UIImage(named:"test-image"), forState:[.selected, .highlighted])

Ziel c

[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateSelected|UIControlStateHighlighted];


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow