2016-12-10 3 views
1

Ich suche nach einer Lösung, wie Größe der Schaltfläche vor Ansicht geladen wird. Ich mag Knopf Runde machen, damit ich diesen versuchenWie man Knopfgröße erhält, bevor Ansicht geladen wird?

-(void) viewWillAppear:(BOOL)animated{ 
    CGSize loopButtonSize= _loopButton.frame.size; 
    _loopButton.layer.cornerRadius=loopButtonSize.height/2.0f; 
    NSLog(@"viewWillAppear button height: %f", loopButtonSize.height); 
} 

Aber diese Show falsche Knopf Größe (1000 statt zum Beispiel 43) Mein Schaltflächengrße dynamische Änderung ist, so kann ich nicht konstante Größe Werte verwenden.

Dies funktioniert für mich, aber es ändern Knopfform nach Ansicht laden. Also, wenn ich animierte Ladung verwende, dann erscheint für die zweite quadratische Schaltfläche, die dann in Runde wechseln.

-(void)viewDidAppear:(BOOL)animated{ 
    CGSize loopButtonSize= _loopButton.frame.size; 
    _loopButton.layer.cornerRadius=loopButtonSize.height/2.0f; 

    NSLog(@"viewDidAppear button height: %f", loopButtonSize.height); 

} 

Irgendwelche Ideen, wie es richtig machen?

Antwort

1

Schreiben Sie den Code, um die Schaltfläche in ViewDidLayoutSubviews-Methode zu runden, da es aufgerufen wird, nachdem die Ansicht ausgelegt ist, erhalten Sie Ihre Schaltfläche richtig gerundet.

1

Setzen Sie diesen Code in Ihre viewDidLayoutSubviews Methode.

+0

Ja, du solltest @ Aakashs Antwort akzeptieren. Er hat seine (einige Sekunden) vor mir veröffentlicht. –

Verwandte Themen