2013-09-04 35 views
18

Şu anda uygulamanızı iOS 7'ye aktarıyorum (iOS 6 uyumlu kalmasını istiyorum). Bu soru, Apple NDA tarafından ele alınmaz, Otomatik Düzenleme ile ilgili bir sorudur (iOS 7'nin Otomatik Düzenlemeye zorladığı görülür (DÜZENLEME: yanılıyordu, zorlanmadı)).Gezinme çubuğu ve görünüm denetleyicisi ile Otomatik Düzenleme (iOS 7)

Kök görünümü denetleyicisine sahip bir gezinme denetleyicim var (açık). IOS 6 ile Otomatik Düzenleme'yi kullanmıyordum, bu nedenle kök görüntüleme denetleyicileri gezinme çubuğunun altındaydı. IOS 7 ile çerçeve menşeli gezinme çubuğunu içermez, bu yüzden içeriğimin üst kısmı gizlenir ...

Otomatik Düzenleme ile gezinti çubuğunun üstündeki tüm görünümün nasıl oluşturulduğuna dair bir fikriniz mi var?

Teşekkürler!

+0

gibi bir şey olabilir ama Apple eğer şaşıracaksın: Bu iOS7 veya değilse bilmek yardımcı olacaktır

"geliştiriciler iOS7'de otomatik yerleşimi kullanacak mı? Bu kesinlikle böyle mi? (Bu bilgi NDA tarafından karşılanabilir!) – bennythemink

+0

iOS 7'de Autolayout zorlanmaz. Geliştirilmiştir. –

+0

Onun zorlanması. Doktora yazılmadılar. ViewDidLoad ve viewDidAppear'dan önceki kare değerlerini kontrol edin. IB kullanmıyorum ama yine de değerler farklıdır .. Bu ne anlama geliyor? !! –

cevap

22

iOS 7'de, gezinme çubuğunu belirten topLayoutGuide var. Daha sonra, tablo görünümünün kısıtlamasının üst görünümde değil de topLayoutGuide'da olmasını istediğinizi belirtebilirsiniz. "Zorla

if ([self respondsToSelector:@selector(topLayoutGuide)]) 

Demek ki ben yanlış olabileceğini

NSString *verticalConstraint = @"V:|[v]|"; 
NSMutableDictionary *views = [NSMutableDictionary new]; 
views[@"v"] = self.tableview; 
if ([self respondsToSelector:@selector(topLayoutGuide)]) { 
    views[@"topLayoutGuide"] = self.topLayoutGuide; 
    verticalConstraint = @"V:[topLayoutGuide][v]|"; 
} 
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:verticalConstraint options:0 metrics:nil views:views]]; 
[self.view addConstraints:constraints]; 
+1

ios 6'da derlemek için, self.topLayoutGuide [self valueForKey: @ "topLayoutGuide"] olması gerekir (iOS 7 GM'de test edilmiştir) –

+0

@kschaeffler @ @ V: [topLayoutGuide] [v] | "? Görsel biçimdeki dillerle ilgili yazıyı inceliyorum, ama hala biraz kafam karıştı. Düşünün, topLayoutGuide ile ilgili olduğunu söylüyor, ama ... Düzenle: * Flaş - ampul söner * Nevermind, sanırım anlıyorum. Başlangıç ​​V: dikey bir düzen kurduğunuzu ve sonra [object1] [object2] nesnesinin 1 ve 2 nesnelerinin birbirine ters olduğunu söyler. Sadece ne emin değilim | yapar. – RonLugge

+0

Tamam, kendimi çözdüğümden kısa bir açıklama yayınlayacağım: 'V:' kısmı bunu değiştirerek dikey düzeni etkiliyor. [TopLayoutGuide], [v] ile temsil edilen alt görüme sığdırılan görünüm tarafından sağlanan üst düzen kılavuzuna bir başvuru olarak işlev görür. Kapama borusu, görünümün kenarının süper görüntü ile bittiği anlamına gelir. Anlaşılan, çok net ve güzel bir düzen dili ... eğer ilk başta anlaşılması zorsa. – RonLugge

İlgili konular