2010-12-07 10 views
21

rootController içinden El ile bir UITableView ekliyorum, ancak çerçeve boyutunu nasıl alacağımı bilmiyorum ...Çerçeve boyutu gezinme çubuğunun altında mı?

Controller *rootController = [[Controller alloc] init]; 
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
[self setNavController:tempNavController]; 
[tempNavController release]; 

[window addSubview:[[self navController] view]]; 
[window makeKeyAndVisible]; 

Şu anda kullanıyorum: [[[self navigationController] view] frame] ama bu "navBar" için geçerli değil yüksekliği veya "statusBar" (bana veren: 480). Çerçevenin boyutunu statusBar/navBar'ın altına almak için bir yol var mı, yoksa yukarıdaki sayıdan 20 + 44 çıkarmalı mıyım?

NB: 44

kazanmak için navigationController.navigationBar.frame.size.height kullanıyorum
+0

Neden tablo görünümünüzün çerçevesini manuel olarak ayarlıyorsunuz? Tablo görünümü denetleyicinizi navigasyon denetleyicinizin viewControllers dizisine eklerseniz, tablo sizin tablo görünümünüzün çerçevesini veya sınırlarını ayarlamanıza gerek kalmadan otomatik olarak sizin için uygun şekilde boyutlandırılmalıdır. – Ryan

+0

Evet, tabloyu ekler ve otomatik olarak yeniden boyutlandırmayı etkinleştirirseniz, varsayılan olarak sığmalıdır. – gabaum10

+1

Bir UITableViewController, bir UITableView, bir UIViewController ekliyorum. UITableViewController kullanabileceğimi takdir ediyorum, ama sadece bir tane olmadan yapmaya çalışıyorum. – fuzzygoat

cevap

48

almak için navigationController.navigationBar.frame.size.height kullanıyorum Eğer

self.window.frame.size.height 

Cheers itibaren

[UIApplication sharedApplication].statusBarFrame.size.height 

Ve

self.navigationController.navigationBar.frame.size.height 

çıkarmak deneyebilirsiniz, Rog

+0

'UINavigationController'' 'self.navigationController' üzerinden doğrudan erişiminiz yoksa navigasyon çubuğuna erişmenin bir yolu var mı? – alexgophermix

+1

'self.parentViewController.navigationController' denediniz mi? – Rog

+0

Bunu bir UIView alt sınıf kitaplığı içinden yapıyorum, bu yüzden 'self.parentViewController' özelliğine erişebildiğimden emin değilim. Şimdiye kadar tüm durumlar için çalışıyormuş gibi görünen bir şey sadece UIViewController'ın yüksekliğini '((UIView *) self.nextResponder) üzerinden almaktır .frame.size;' Çirkin olduğunu biliyorum: | – alexgophermix

İlgili konular