2012-08-22 8 views
11

Ho un controller di visualizzazione con un pulsante che attiva uno Segale modale Storyboard con la transizione Parziale arricciatura.Animazione anomala di UISegmentedControl sotto Parziale arricciatura

Sul controller della vista che viene rivelato, ho un UISegmentedControl.

Infine, ho ridotto la dimensione del font dello UISegmentedControl.

Quando il pulsante viene premuto, la pagina si arriccia per rivelare il controllo segmentato - durante l'animazione dell'arricciatura, è possibile vedere chiaramente il controllo segmentato animato da larghezza zero alla larghezza effettiva - sembra molto strano e disordinato, e io non riesco a capire perché questo accade!

sono stato in grado di riprodurre l'effetto come segue:

  • Creare singolo progetto vista
  • Aggiungi secondo controller della vista allo storyboard
  • Aggiungi un UIButton al primo controller di vista
  • Aggiungi un UISegmentedControl al nuovo controller di vista
  • Collegare il pulsante alla seconda vista con un segmento modale di arricciamento parziale
  • Aggiungere un file di classe al progetto, ereditato da UIViewController
  • Aggiungi un IBOutlet per il controllo segmentato alla nuova classe
  • link la seconda vista controller per la nuova classe e la segmentato di controllo alla presa
  • in viewDidLoad: nella nuova classe aggiungere:

    [segmentedControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIFont boldSystemFontOfSize:14] forKey:UITextAttributeFont] forState:UIControlStateNormal]; 
    

Un effetto simile si vede anche se il riccio è consentito di aprire nel landscap e

+3

Questa domanda sembra essere simile a http://stackoverflow.com/questions/9741052/ios-how-to-stop-text-animation-in-partial-curl. Hai provato ad aggiungere '[self.view layoutIfNeeded]' all'implementazione '-viewDidLoad'? –

+0

Inoltre, ho riprodotto tutti i passaggi e non ho riscontrato questo problema. Quale versione di XCode stai usando? Quali sono il tuo SDK di base e il tuo obiettivo di implementazione? Nella riga che hai inserito in 'viewDidLoad:', chiami direttamente 'segmentedControl', no' self.segmentedControl'or '_segmentedControl', è perché dichiari direttamente l'ivar? – Zedenem

+0

dacci l'intero viewDidLoad per favore. Non sei sicuro di ciò che sta accadendo dalle informazioni che hai fornito. – metsburg

risposta

0

Mi sono imbattuto in qualcosa di simile. Prova a cambiare il selectedSegmentIndex subito prima del ricciolo (puoi impostarlo su -1 per deselezionarlo) per forzare il controllo ad avere larghezza.