2014-10-14 16 views
6

Ho uno strano problema con i miei vincoli su questo semplice UIViewController. Ho solo due elementi in esso e precisamente:Aggiornamento costante di vincoli non funziona su iOS 8

1 UIButton con questi vincoli: Button Constraints 1 PageControl con questi vincoli: PageControl Constraints Il problema è in iOS 8. Ho collegato il BottomSpace vincolo di UIPageControl cambiare il valore costante (che in iOS 7 funziona perfettamente). In iOS 8 il valore non cambia senza errori. Il mio codice è semplice:

pageControlBottomConstraint.constant = 50 

Qual è la differenza tra le due versioni iOS?

+0

[PageControl layoutIfNeeded]; Puoi provare questo? –

+0

Sì ma non cambia nulla :( –

risposta

6

effettuare le seguenti operazioni,

1. chiamata updateConstraintsIfNeeded
2. chiamata layoutIfNeeded (per CurrentView e ViewYouWantToUpdate)

Quindi il codice dovrebbe essere

[pageControl updateConstraintsIfNeeded]; 
[self.view layoutIfNeeded]; 
[pageControl layoutIfNeeded]; 

se si desidera animare il Constraints

Objective-C

[pageControl updateConstraintsIfNeeded]; 
[UIView animateWithDuration:.75f animations:^{ 
    __weak __typeof__(self) weakSelf = self 
    [self.view layoutIfNeeded]; 
    [pageControl layoutIfNeeded]; 
} 

Swift 3.0:

pageControl.updateConstraintsIfNeeded() 
UIView.animate(withDuration: 0.75) { 
    weak var weakSelf = self 
    weakSelf?.view.layoutIfNeeded() 
    weakSelf?.pageControl.layoutIfNeeded() 
} 
Problemi correlati