2016-08-17 63 views
0

我想以編程方式在UIContinerView中垂直和水平居中視圖。所以我試圖..ios:垂直居中不工作UIContainerView

UIView view = new UIView(new CGRect(0,0,100,100)); 
view.Center = new CGPoint(controller.View.Bounds.GetMidX(), controller.View.Bounds.GetMidY()); 
view.BackgroundColor = UIColor.Orange; 
controller.View.AddSubview(view) 

但這是我得到(在下面的截圖中)顯然它不是中心垂直。 ContainerView是TabBar下方到屏幕底部的區域。上述代碼沒有使用ContainerView。

我試圖在故事板中添加約束中心的垂直和水平。那麼它的工作原理,但不是programaticlly ......請幫助

enter image description here

我也試過:

CGPoint center = view.Center; 
center.X = controller.View.Center.X; 
center.Y = controller.View.Center.Y; 
view.Center = center; 

但同樣的效果

+0

如果您正在用'調用它viewDidLoad',那麼視圖的大小可能不是最後一個。我會建議使用約束,或者在'viewDidLayoutSubviews'中設置中心。 – EmilioPelaez

回答

0
view.Center = new CGPoint(controller.View.Bounds.GetMidX(), controller.View.Bounds.GetMidY() - TabBarHeight/2); 

view.Center = containterView.center 
containterView.AddSubview(view) 
+0

我將ViewController的引用傳遞給另一個函數。那爲什麼我加了controller.View – HeisenBerg

+0

如果你正在做'View.AddSubview(view)',中心應該是'View''中心 –

+0

那麼,這是我在編輯創建這個主題的代碼時犯的一個錯誤。我現在糾正了。 – HeisenBerg