2016-08-17 2 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 참조를 다른 함수에 전달하고 있습니다. 컨트롤러를 추가 한 이유입니다. View.AddSubview (view)를 실행 중이면 – HeisenBerg

+0

을 센터에 추가합니다. –

+0

센터는이 주제를 만들기위한 코드를 편집하는 동안 실수였습니다. . 나는 지금 바로 고쳤다. – HeisenBerg

관련 문제