2016-08-17 28 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なしで上記のコードが動作します。

私はストーリーボードに縦横の拘束を追加しようとしました。あなたの場合は

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

も同様の効果

+0

:それはprogramaticlly ...

enter image description here

を助けてください、私も試した作品ではなく、それを ' 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の参照を別の関数に渡しています。あなたは 'View.AddSubview(ビュー)'行っている場合は、なぜ私はcontroller.View – HeisenBerg

+0

を追加しましたことを、中央部には、このトピックを作成するためのコードを編集しながら、まあ、それは私が作った間違いだった –

+0

'View''aセンターでなければなりません。私は今修正しました。 – HeisenBerg