2016-03-30 20 views
4

Düzenli yatay boyut sınıfına sahip iOS aygıtları için dikey ve yatay yönelimleri destekleyen bir uygulama oluşturmaya ve yalnızca diğer öğeler için portre oluşturmaya çalışıyorum.horizontalSizeClass için yatay yönlendirmeyi destekleyin. IOS'ta

Bu yazı yazıldığı sırada şunlar olurdu: Yalnızca portre (6 Plus/6s Plus dışındaki iPhone'lar için) ve iPhone 6 Plus/6s Plus ve iPad için Dikey ve Yatay.

Bu, yerel Posta uygulaması tarafından gerçekleştirilen benzer bir davranıştır.

aşağıdaki, başka şeylerin yanı sıra denedim:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 

    return [.Portrait, .LandscapeLeft, .LandscapeRight] 

} 

override func shouldAutorotate() -> Bool { 

    return (traitCollection.horizontalSizeClass == .Regular) 

} 

Ancak shouldAutororate besbelli arayüz döndükçe önce denir, traitCollection güncellenir önce olur böylece.

Yani, soru şu, buna nasıl ulaşılır? Bunu açıkça kullanıcı arabirimine, ekran boyutuna, vs. göndermeden mümkün olan en temiz şekilde yapmaya çalışıyorum.

+0

Bunun için bir çözüm buldunuz mu? Ben de bununla ilgileniyorum! – Whakkee

cevap

2
override var supportedInterfaceOrientations:UIInterfaceOrientationMask{ 

    return [.portrait, .landscapeLeft, .landscapeRight] 

} 

override var shouldAutorotate:Bool { 

    return (traitCollection.horizontalSizeClass == .regular) || (traitCollection.displayScale > 2); 

} 
+0

Güzel çözüm! İlk fikrim "ama" traitCollection "henüz güncellenmedi ...", fakat "displayScale" ile kombine edilmiş "traitCollection", ihtiyacımız olan bilgiyi bize veriyor! – Whakkee

İlgili konular