UIView изменить размер равномерно

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

2 ответа

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

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

Я предлагаю, если я понимаю вашу проблему, вы получите размер суперпредставления, в котором находится представление. Пусть это мнение будет 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);
}

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

Другие вопросы по тегам