Gezinme denetleyicisi ve sekme çubuğu denetleyicisi olan bir ViewController sahibim. Bu ViewController'da, kaydırma görünümünü ve harita görünümünü görünür kılan 2 düğme vardır. Asıl mesele, bu 2 düğmenin her zaman, oryantasyondan veya görünür olan görünümden bağımsız olarak aynı yerde görünmesidir.iOS MapView, gezinme çubuğu, durum çubuğu ve sekme çubuğu denetleyicisinin altından geçer
Karşılaştığım sorun, MapView'ın düzgün bir şekilde boyutlandırmamasıdır. Ben sadece self.view.bounds bir çerçeve verirseniz, temel olarak tüm ekranı kaplayan gezinme çubuğu/sekme çubuğunun altında gider. Bu, geçiş düğmelerinin yerini atar.
ScrollView'ımın aynı (arka plan rengi ve saydam bir gezinti çubuğu kullanarak) yaptığı, ancak alt görünümlerin konumlandırılmasının görünür alan içinde (gezinme çubuğu ve sekme çubuğu arasında) bulunduğunu fark ettim. Bu yüzden, geçiş düğmelerini eklediğimde, doğru yerde gösterilir.
Geçiş düğmelerine bastığımda, düğmelerin üst görünümünü şimdi görüntülenen görünüme (ScrollView veya MapView) yeniden ataırım. Bu her zaman kaydırma görünümünde çalışır, ancak konumlandırma nedeniyle, MapView görüntülendiğinde gezinme çubuğunun altına girerler.
MapView için çerçeveyi el ile oluşturmayı denedim ancak tek bir sonuç aldım. Ben çerçeve için bunu kullanın: Ben yatay modda görünümü denetleyicisi içine girerseniz
CGRect mapFrame = CGRectMake(
0,
(self.navigationController.navigationBar.frame.size.height + [UIApplication sharedApplication].statusBarFrame.size.height),
self.view.frame.size.width,
(
self.view.frame.size.height
- (self.navigationController.navigationBar.frame.size.height + [UIApplication sharedApplication].statusBarFrame.size.height + self.tabBarController.tabBar.frame.size.height)
)
);
Sonra, otomatik yeniden boyutlandırma maskeleri
[self.mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin];
Ama bununla
set - MapView ekranında kapalıdır. Portre moduna girip sonra yatay konuma dönersek, üst kenar boşluğu kapalıdır ancak yaklaşık 10 nokta olur, böylece gezinme çubuğunun altında bir miktar kalır (ve sekme çubuğu ile harita görünümünün alt kısmı arasında görünür bir kenar boşluğu vardır).MapView alt görünümlerini yalnızca ScrollView gibi görünen bölgede gösterebilir miyim? Haritanın kendisi gezinme çubuğu/sekme çubuğu
bu eklemektir. :) Yardım için teşekkürler. – James
Çözümünüze teşekkürler. – jhondge