UINavigationController, UINavigationBar'ın yüksekliğini, oldukça tuhaf ve belgesiz kısıtlamalara bağlı olarak 44 veya 64 noktaya değiştirir. UINavigationController, görünümünün çerçevesinin en üst kısmının UIWindow’un tepesiyle görsel olarak bitişik olduğunu algılarsa, gezinme çubuğunu 64 nokta yüksekliğiyle çeker. Görünümünün üst kısmı, UIWindow’un tepesine bitişik değilse (yalnızca bir noktadan bile olsa), navigasyon çubuğunu "geleneksel" şekilde 44 puanlık bir yükseklikte çeker. Bu mantık UINavigationController tarafından, uygulamanızın görünüm denetleyici hiyerarşisinde birkaç çocuk olsa bile gerçekleştirilir. Bu davranışı engellemenin hiçbir yolu yoktur.
Görünüm hiyerarşinizi ilk örnekteki noktadan başlayarak konumlandırıyor gibi görünüyor (0,20). Ayrıca, bir UIToolbar veya bir UINavigationBar mı? Eğer ikincisiyse, neden kendi başına kullanıyorsunuz ve UINavigationController'ın içinde kullanmıyorsunuz?
UINavigationController'ı kullanmıyor ve bunun yerine özel görünüm denetleyicisi kapsayıcılarını kullanıyorsanız, görünümlerinizi buna göre konumlandırmanız gerekir. Ayrıntılı bir açıklama için this answer numaralı telefona bakın.
- (void)viewDidLoad {
[super viewDidLoad];
if (NSFoundationVersionNumber>NSFoundationVersionNumber_iOS_6_1) {
CGRect statusBarFrame = [self.view convertRect: [UIApplication sharedApplication].statusBarFrame fromView: nil];
UIToolbar *statusBarBackground = [[UIToolbar alloc] initWithFrame: statusBarFrame];
statusBarBackground.barStyle = self.navBar.barStyle;
statusBarBackground.translucent = self.navBar.translucent;
statusBarBackground.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
[self.view addSubview: statusBarBackground];
}
}
gezinti çubuğuna self.navBar
puan Film şeridinde eklendi:
http://meta.stackexchange.com/questions/94465/should-moderators-enforce-ndas-for-software-vendors –
@Caleb bkz @Caleb Meta üzerinde bu cevapta bulunabilir: http://meta.stackexchange.com/questions/184625/why-is-there-an-ios-7-tag/184635#184635 –
@BradLarson Belki de cevap vermek için biraz zaman ayırmalıyım meta parçanıza burada yapmak yerine. Kısaca, iOS NDA'yı ihlal eden soruların kapatıldığı bir geçmişimiz var ve bence en azından * bu tür soruları bir yorumla belirtmek önemlidir. Konumunuzun tüm SO moderatörlerinin veya genel olarak SE'nin pozisyonu olduğunu söylüyorsanız, bu temelde kapatmaya oy vermemeye dikkat etmiyorum. OTOH, cevap verilemeyen sorulara cevap verilemeyecek açık bir değer var. – Caleb