2015-12-31 2 views
0

Я пробовал эти решения:
Первое решениеКак установить Mutiple UIView в центре

ansview.center = CGPointMake(viewAnswer.frame.size.width/2, 
       viewAnswer.frame.size.height/2); 
    ansview.center = CGPointMake(viewAnswer., viewAnswer.height/2) 

Второе решение

self.ansview.center = CGPointMake(CGRectGetMidX(self.viewAnswer.bounds), 
       CGRectGetMidY(self.viewAnswer.bounds)); 

Я уже попробовал этот код. Но только одно представление настроено на центр. Как установить несколько точек в центре?

+0

Не ясно, о чем вы спрашиваете. Если вы установите несколько точек зрения на одну и ту же центральную точку, они будут расположены друг над другом. Это то, что вы хотите? И, кстати, вы отключили автоматическую компоновку? Он включен по умолчанию, и с автоматической компоновкой вы должны использовать ограничения, чтобы перемещать свои представления, а не напрямую менять их центральные точки. –

ответ

2

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

override func viewDidLayoutSubviews() { 
     self.ansview.center = CGPointMake(self.viewAnswer.bounds.size.width/2, self.viewAnswer.bounds.size.height/2) 
    } 

Вы должны использовать bounds и не frame, как frame не определен, если вид имеет преобразование.

+0

Ваш ответ не имеет большого смысла. Вы не можете установить точку зрения, номер 1. Вы также не можете использовать границы представления, чтобы переместить ее. Вы должны использовать центральную точку, как это делает OP. Вы правы, что вам нужно использовать границы супервизора, а не кадр для расчета нового центра представления. –

+0

@ DuncanC вы абсолютно правы! Глупая ошибка от меня, я обновил свой ответ. Не стесняйтесь давать отзывы. –

0

Вы также можете попробовать этот

[ansview setCenterX:self.view.centerX]; 
[ansview setCenterY:self.view.centerY]; 
Смежные вопросы