Ben de benzer bir sorun var.
Bir oyun yatay yön (sol ve sağ manzara her ikisi de) çalışan var.
Ben alkolsüz UIViewController kullanmak bir çok görüntülü uygulamasını yönetmek için, hiçbir şey yapmaz bir UIView ile bir kukla UIViewController yani. Sonra bir subview kendisine her UIView ekleyin.
Uygulamayı başlatırken, emülatör hızla dikey yönde döner ve ben 's çerçeve özelliği (0, -80320480) gibi bakarak benim görüş her biri olsun. görünümünde bu sonuçlar sağ tarafında bir 160 X 320 dikdörtgen kırpılmasını gösterir.
Her subview yöntemi yalnızca bir kez denir ve bu kök görünümüne eklendiğinde olur: shouldAutorotateToInterfaceOrientation - Ben fark ettik. Cihazı döndürürken Daha sonra, yalnızca kök görünümü yöntemi denir bulunuyor alır.
Şaşırtıcı değil, herhangi biri - willAnimate * yöntemler aramaları sadece subviews bu yöntemlerden herhangi anlamsızdır tanımlayan, kök görünümüne gönderilen eder, bu yüzden.
Bu yöntemler, her yönlendirme kabul gören bir yönelime değiştirilir denir - shouldAutorotateToInterfaceOrientation: yöntemi. bu yüzden orada benim subviews' çerçeve özelliği chnage düşündüm.
Bunu başarmak için, benim rootViewController sınıfında aşağıdaki yöntemi tanımlanır:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
subview1_ViewController.view.frame = CGRectMake(0,0,480,320);
subview2_ViewController.view.frame = CGRectMake(0,0,480,320);
...
}
Çerçeve özelliği güncelleştirilir neden anlamıyorum, ama bu geçici çözüm çalıştığını biliyorum.
Bu yardımcı olur umarım....