2017-03-17 24 views
0

我無法將活動指示燈相對於高度居中。在我添加一個導航控制器之前,它是好的,之後它是水平居中但不垂直。這是照片和代碼。居中導航欄時的活動指示燈

picture

這裏是在沒有導航控制器到中心的代碼。

_loadingView.center = self.view.center; 
[self.view addSubview:_loadingView]; 

請幫忙。謝謝!!

+0

嘗試裏面** - (空)viewWillAppear中:(BOOL)動畫**'_loadingView.center = CGPointMake(self.view.frame.size。 width/2.0,(self.view.frame.size.height - navigationBarHeight - tabBarHeight)/ 2.0);' –

+0

試試這個CGFloat navigationBarHeight = self.navigationController.navigationBar.frame.size.height; CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height; _loadingView.center = CGPointMake([UIScreen mainScreen] .bounds.size.width/2.0,([UIScreen mainScreen] .bounds.size.height - navigationBarHeight --tabBarHeight)/ 2.0) –

+0

不可以。沒有工作。和以前一樣。 – Mustafa

回答

0

試試這個

_loadingView.center = self.navigationController.view.center; 
[self.navigationController.view addSubview:_loadingView]; 

它的不同的看法

+0

它的工作!!謝謝:) – Mustafa

0

它會幫助你解決你的問題下在屬性上線棒

_loadingView = CGPointMake(self.view.frame.size.width/2.0, (self.view.frame.size.height - navigationBarHeight - tabBarHeight)/2.0) 

[self.view addSubview:_loadingView]; 
+0

我已經試過這個。它沒有工作。 – Mustafa

+0

@mustafaHassan我更新了一個代碼。請試試這個。 –

+0

是的,我也試過這個,從這一個得到: http://stackoverflow.com/a/11587804/5184217 並沒有工作。 – Mustafa

0

檢查您的導航控制器和視圖控制器的檢查員。

enter image description here

+0

是的,它已經被檢查。 – Mustafa

+0

你試過取消它嗎? – whoswho

1

UIViewController的視圖報告其center在其父的座標空間中,這就是爲什麼它的豎直由導航欄的高度偏移座標。

如果你要放置指示以類似的方式爲你現在在做什麼,計算出中心座標自己:

CGPoint center = CGPointMake(self.view.bounds.size.width/2.0, self.view.bounds.size.height/2.0) _loadingView.center = center; [self.view addSubview:_loadingView];

一定要更新此每當主視圖邊界的變化,即在另一個答案中提到的-viewDidLayoutSubviews

但是,通過採用Auto Layout並設置兩個中心約束(每個軸一個約束),可以全部更新和簡化。您可以在界面構建器模式或代碼中執行此操作,請檢查文檔。