ios - uibutton programmatically swift 4



ios-Programmatisch codierter UIButton wird nicht angezeigt (4)

Abgesehen von den in den Kommentaren aufgeführten Punkten

UIButtonTypeCustom, erstellt eine leere Schaltfläche.

Verwenden Sie diese Option, wenn Sie ein Bild als Schaltfläche verwenden möchten, aber beachten Sie, dass setImage den Titel der Schaltfläche überschreibt. Sie müssen also ein Hintergrundbild festlegen.

Dein Knopf ist tatsächlich da, er erscheint einfach nicht, um dort zu sein

Damit

Verwenden Sie UIButtonTypeRoundRect (es könnte etwas anders sein)

oder wenn Sie ein Bild als Schaltfläche möchten.

Verwenden Sie UIButtonTypeCustom Call setBackgroundImage: Rufen setBackgroundImage: dann setTitle:forState:

https://src-bin.com

.

Hallo,

Ich versuche, ein UIButton und andere Elemente programmgesteuert meinem UIViewController hinzuzufügen, und von dem, was ich in anderen SO-Fragen gelesen und gesehen habe, sollte ich mit diesem Code auf der richtigen Spur sein:

- (void)viewDidLoad
{
[super viewDidLoad];



UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];    
backButton = [[UIButton alloc] init];
backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(10, 25, 150, 75);
backButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
backButton.titleLabel.text = @"Back"; 
[self.view addSubview:backButton];


// Do any additional setup after loading the view.
}

Jetzt wird dieser Code in die viewDidLoad Methode eingefügt und erscheint nicht, was mich zu der Frage führt - Was mache ich falsch?

Wenn ich die Farbe des Hintergrundes ändern und die viewDidLoad einfügen will, funktioniert es gut.

Prost Jeff


Answer #1

Sie legen den Schaltflächentitel falsch fest. Benutzen:

- (void)setTitle:(NSString *)title forState:(UIControlState)state

Auch wie andere gesagt haben, müssen Sie Ihren Knopf nicht dreimal initialisieren. Entfernen Sie die 2. und 3. Zeile.


Answer #2

Sie müssen den Knopf Typ ist RoundedRect verwenden, dann können wir die Hintergrundfarbe sehen

[UIButton buttonWithType: UIButtonTypeRoundedRect]; 

Hoffe es wird helfen!


Answer #3

Ich denke, Sie können die Schaltfläche korrekt einfügen, aber kann es einfach nicht sehen, weil es keinen Hintergrund hat und der Text nicht angezeigt wird.

Versuchen Sie es mit einer abgerundeten Schaltfläche "Rect Button System", nur um zu sehen, ob dies angezeigt wird. Setze den Text korrekt. Ich werde auch die Einstellung der Schriftart entfernen, nur wenn es ein Problem mit der Schriftart gibt.

// backButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
backButton = [UIButton buttonWithType:UIButtonTypeSystem];
backButton.frame = CGRectMake(10, 25, 150, 75);
[backButton setTitle:@"Back" forState:UIControlStateNormal];
[self.view addSubview:backButton];

Update: UIButtonTypeRoundedRect wurde als veraltet eingestuft.





viewdidload