2010-08-06 8 views
9

HIG (s.47), telefon aramaları veya ses kayıtları sırasında görüntülenen çift yükseklikte durum çubuğunu kullanabilmem gerektiğini söylüyor.Çift yükseklikte bir durum çubuğunu nasıl tespit ederim?

Tam olarak nasıl bu durumu ele?

Gerçekten de, çift yükseklikte durum çubuğu görüntülendiğinde araç çubuğu bulunan bir klavyenin bir metin alanını altüst ettiği 1 ekranım var - diğer ekranlarda işler biraz sıkıştırılıyor ancak kullanılabilir.

Çift yükseklikte bir durum çubuğunun olduğunu tespit edersem, metin alanlarının yerleşimini ayarlayabilir veya geçici olarak daha kısa yapabilirdim, ancak çift yükseklikte durum çubuğunun ne zaman olduğunu algılamak mümkün olabilir mi?

DÜZENLEME: Belki de, bar çubuğu gibi bilinen bir şeyin mutlak koordinatlarını elde etmek için bir yol olsaydı, ve eğer +20 piksel kapalıysa, çift yükseklikte durum çubuğunun mevcut olduğunu varsayardım. Düşünceler? Bu (ya da bir şey) çalışırsa

Ve ikincil bir soru, ben sadece

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO] 

kullanarak düzenli Durum çubuğunu gizlemek için isterdim ama hem gizlemek istemiyorum - temelde tembel bir şekilde ekranlarımdan birine dokunmak zorunda değil - eğer çift varsa, normal durum çubuğunu gizleyerek bir kez daha tek yap. Yukarıdaki kod her ikisini de gizleyecek mi?

cevap

16

Sen UIApplicationDelegate bu çağrı sırtlarını izleyebilirsiniz:

  • uygulaması: willChangeStatusBarFrame:

  • uygulaması: didChangeStatusBarFrame:

Ve iphone bu test etmek kolaydır simülatör: BAHOZ-> geçiş In-Çağrı Durumu Bar

Durumunuza bağlı olarak, görünümleriniz ve içerdeki şeyler otomatik olarak alanı sığacak şekilde yeniden boyutlandırabilir - çeşitli nesneler üzerindeki Interface Builder'daki Denetleyici Penceresinin Görünüm Boyut alanını kontrol edin

+0

Bu adres, kullanıcının bulunduğu yerdeki durumu ele alır. çağrı veya arama kayıt sürecinde THEN benim app girer? Yoksa uygulamada sadece bir kez bir değişiklik izleyecek mi? –

+0

Tamam, belki beni doğru yönde işaret ettiğiniz için UIApplicationStatusBarFrameUserInfoKey –

+0

'u kontrol edebilirsiniz. Uygulamaya girmeden önce bir çağrı kökeni işlemek için, bazı viewDidLoad'larda sadece statusbar çerçevesinin boyutunu kontrol ediyorum - 20'nin üzerinde ise, devam eden çağrıyı ve boyut görünümünü buna göre kabul edin. Delegeyle sorun yaşıyorum. Metodu benim AppDelegate'ime koyduğumda yanıyor, ancak bu sınıfta UIApplicationDelegate'i benimsemeye bile gerek duyduğum sınıfta değilken, her sınıfta başlayacak ya da biten bir çağrıyla nasıl başa çıkılacağından emin değilsiniz. Köprü nedir? görünümü değiştirmek istediğim sınıf için AppDelegate yöntemini? –