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);
}
И теперь ваш взгляд расположен правильно