2009-03-01 17 views
3

içinde kullanılabilir sınırları nasıl alırsınız Bir UITabBarController kullanırken, sekme çubuğunun boyutunu aşağıdan nasıl elde edersiniz? Benzer şekilde, sekmeli görünümde ne kadar yer olduğunu nasıl bilirsiniz? içerik? Sekme alt görünümlerini [[UIScreen mainScreen] applicationFrame] 'e ayarlayan birçok insan örneği görüyorum. Bu durum, sekme çubuğunun ekranın alt kısmında bir yer kapladığı için doğru olamaz.Bir UITabBarController

Ayrıca, sekme çubuğunun boyutunu değiştirmek mümkün mü?

Teşekkür Ryan

cevap

0

applicationFrame'i kullanabilmenizin nedeni, UITabBarController alt denetleyicilerinin görüşlerini yeniden boyutlandırmasıdır, bu nedenle görünümünüz doğru şekilde yeniden boyutlandırmayı desteklediği sürece, her şey işe yarayacaktır.

Sekme çubuğu denetleyicinizin tabBar özelliğine erişip çerçeveye bakarak sekme çubuğunun boyutunu alabilirsiniz. sekme çubuğunun artı görünümü için alanın toplam büyüklüğü sekme çubuğu kontrolörün görünüm tesisin çerçeve bakarak bulunabilir, bu yüzden biraz çıkarma size aradığınız numarayı alacak:

CGFloat myViewHeight = tabBarController.view .size.height 
        - tabBarController.tabBar.size.height; 
+0

Hangi sdk sürümünü kullanıyorsunuz? Ben 2.2.1 kullanıyorum ve tabBar özelliği – carlos

+0

erişemiyorum .size tabBar bir özellik değil – ChrisP

+0

@ ChrisP Kesinlikle haklısın - '.frame.size 'ihtiyacım var, değil. '. Bunun için üzgünüm. –

0

Bir UITabBar yeniden boyutlandırmak için nasıl öğrenebilirim, o zaman bir UITabBarController'ın UITabBar boyutlandırabilirsiniz. Nesneye,

'u alarak erişebilirsiniz, ancak belgede nesneye doğrudan erişmediğiniz önerilir.

1

Eski soru, ancak yine de:

Görünümünüzü bir NIB'den yüklemezseniz, yükünüzdeki otomatik yeniden boyutlandırma bayraklarını ayarlayınFunc func; Böyle bir şey: Bunu yaparsanız

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | 
          UIViewAutoresizingFlexibleWidth; 

, kendi görünümün aralığı belirlemek üzere [[UIScreen mainScreen] applicationFrame] kullanabilirsiniz; Bir sekme çubuğu varsa otomatik olarak yeniden boyutlandırılacaktır.

Görüşünüz için bir NIB'niz varsa, otomatikleştiriciMask, Interface Builder tarafından otomatik olarak ayarlanır.

Markus

+0

Teşekkürler, sadece ihtiyacım olan şey! Benim kodum UITableView * table = [[UITableView ayırma] initWIthFrame: self.view.bounds stili: UITableViewStylePlain]; table.autoresizingMask = UIViewAutoresizignFlexibleHeight | UIViewAutoresizingFlexibleWidth; 'UIViewController alt sınıfında viewDidLoad yöntemi. 'InitWithFrame: self.view.bounds' yararsız olsa da, sadece "başlangıç ​​boyutu" olarak ayarlıyorum (hemen yeniden boyutlandırılan/değiştirilen). Markus'un çözümü de rotasyonun otomatikleştirilmesini destekliyor. +1 – Raekye

İlgili konular