2012-04-30 4 views
0

У меня есть подкласс uiview, который я хочу расширить равномерно. Я имею в виду, я хочу, чтобы точка начала просмотра находилась в центре, и ширина и высота расширяют ту же сумму. Прямо сейчас точка начала находится в левом верхнем углу (0,0), и она расширяется вправо. Как мне это сделать?UIView resize равномерно

+0

Что вы имеете в виду расширить? Это анимация? Что ты пытаешься сделать? Пожалуйста, будьте более конкретными. – Byte

ответ

0

При изменении ширины и высоты рамки также измените положение x и y кадра на половину этих сумм.

Например, если ваш кадр в настоящее время (40, 60, 100, 200), и вы хотите, чтобы он был более широким на 20 и выше на 30, сделайте это (30, 45, 120, 230).

0

Предлагаю, если вы понимаете, что проблема заключается в том, что вы получаете размер супервизора, в котором находится вид. Пусть это представление будет view. Тогда пусть ваше мнение будет myView.

Так все, что вам нужно сделать, это следующее:

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

UIView view = myView.superview; 
if (nil != view) { 
    // Make sure your view won't extend by itself with this 
    myView.autoresizingMask = UIViewAutoresizingNone; 

    // Get The size of the parent view 
    CGSize size = view.bounds.size; 

    // Set the new frame of your view 
    myView.frame = CGRectMake(size.width/2.0f, 
           size.height/2.0f, 
           size.width/2.0f, 
           size.width/2.0f); 
} 

И теперь ваш взгляд правильно установлен