ios: центр по вертикали не работает внутри UIContainerView

Я хочу программно центрировать представление как по вертикали, так и по горизонтали внутри UIContinerView. Так что я пытался..

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;

но тот же эффект


person Drunken Daddy    schedule 17.08.2016    source источник
comment
Если вы вызываете его в viewDidLoad, то размер представления, вероятно, не является окончательным. Я бы предложил либо использовать ограничения, либо установить центр в viewDidLayoutSubviews.   -  person EmilioPelaez    schedule 17.08.2016


Ответы (1)


person    schedule
comment
Я передаю ссылку ViewController на другую функцию. Вот почему я добавил controller.View - person Drunken Daddy; 17.08.2016
comment
если вы делаете View.AddSubview(view), центр должен быть центром View'a - person Warif Akhand Rishi; 17.08.2016
comment
Что ж, это была ошибка, которую я допустил, когда редактировал код для создания этой темы. Я исправил сейчас. - person Drunken Daddy; 17.08.2016
comment
@HeisenBerg Я могу только предложить. ты пробовал view.Center = controller.View.center? Представление viewController полностью инициализировано? Вы пытались распечатать значения? - person Warif Akhand Rishi; 17.08.2016