2014-10-07 19 views
6

Mam problem podczas używania CGAffineTransformMakeTranslation na iOS7. Widok, w którym używam CGAffineTransformMakeTranslation, będzie się zmieniał w innej pozycji podczas uruchamiania iOS7 i iOS8. Dlaczego to i co robię źle?iOS7 - Dlaczego transformacja CGAffine działa poprawnie w systemie iOS8, ale nie w systemie iOS7?

Mam widok, który nazywam "hud", czyli długość jego parentView i 125,0 wysokości. Używam Auto Layout i tutaj jest zrzut ekranu mojej planszy fabularnej, dzięki czemu możesz zobaczyć, jak mam ustawione ograniczenia. Widok kontenera to widok kolekcji zdjęć.

Storyboard

mam „HUD” ukryć razu z transformacji w dół i po wybraniu zdjęcia zostanie ono ślizgać się z powrotem do widoku.

-(void)showHud:(BOOL)show 
{ 
    NSLog(@"Frame Height: %f", hud.frame.size.height); 

    if (show && !hudSelectionMode) 
    { 
     [UIView animateWithDuration:0.5 delay:0 options:0 
        animations:^{ 
         hud.transform = CGAffineTransformMakeTranslation(0, 0); 
         hud.alpha = 0.8f; 
        } 
        completion:^(BOOL finished){ 
        } 
    ]; 

    } 
    else if (!show && !hudSelectionMode) 
    { 

    [UIView animateWithDuration:0.5 delay:0 options:0 
        animations:^{ 
         hud.transform = CGAffineTransformMakeTranslation(0, hud.frame.size.height); 
         hud.alpha = 0.8f; // will be 0.0 when not testing 
        } 
        completion:^(BOOL finished){ 
        } 
    ]; 


    } 

} 

Tutaj jest problem Na systemów iOS 8 to działa bezbłędnie HUD jest ukryte przed rozpoczęciem i zsunie się, gdy obraz jest wybrany: Hud Hidden Hud Showing

Jednak gdy działa na urządzeniach iOS7 HUD nie jest gdzie bym się spodziewał, że będzie: Hud ios7 "hidden" Hud ios7 showing

Jeśli skomentuję cały kod w - (void) showHud: (BOOL) pokaż, czy hud zasiada u dołu parentView, gdzie spodziewam się tego na 7 i 8.

+1

Czy niedawno włączyłeś opcję AutoLayout lub SizeClasses w programie Interface Builder? – Fogmeister

+1

wyłączenie autolayout naprawiono dla mnie –

+1

Moje doświadczenie jest takie samo jak @MikeBryant - wyłączono autolayout, powracając do old-school autosizing rozwiązało to również dla mnie. – hsoi

Odpowiedz

2

Na iOS7 musisz pomnóż wartość tłumaczenia przez współczynnik skalowania urządzenia. W systemie iOS 8 wydaje się to robić automatycznie, ale nie w systemie iOS7.

+0

Dziękuję bardzo! :) Chciałbym wiedzieć, dlaczego – sachadso

Powiązane problemy