Это странно, что я сейчас смотрю прямо сейчас, я знаю, что добавление ограничений в AutoLayout IB просто. Но я действительно не мог понять, почему мои простые ограничения не работают, когда я изменяю размер (ZoomIn Animation) UIView.Ограничения не работают при изменении размера UIView с помощью анимации
View Я нацелился на zoomIn, отлично работает, но в нем нет должного представления. Кажется, что ограничения не работают.
Из этой установки, где в желтых коробках находятся UIViews, а Зеленые коробки - UIImageViews. Когда я постучал по желтой коробке, он должен увеличить масштаб, как показано на фотографии ниже.
Эти ограничения:
Это должно быть ожидаемый в результате на ZoomIn AnimationBut я не получил никакой удачи, желтая коробка ZoomIn но Green Box Выпущено на своей старой позиции и не изменил размер.
Я положил ведущее, конечное, topSpace и bottomSpace из желтой коробки в зеленую коробку. Моего кода для изменения размера желтого ящика является:
- (void) resizeViewWithZoomInAnimation: (UIView*)view duration:(float)secs option:(UIViewAnimationOptions) option {
//sets the new width and height of deal's view
float newWidth = view.superview.frame.size.width - 20;
float newHeight = view.superview.frame.size.height - 20;
[UIView animateWithDuration:secs delay:0.0 options:option
animations: ^{
switch ([view tag]) {
case 1:
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, newWidth, newHeight)];
break;
case 2:
[view setFrame:CGRectMake(CGRectGetMaxX(view.frame),CGRectGetMinY(view.frame), -newWidth , newHeight)];
break;
case 3:
[view setFrame:CGRectMake(CGRectGetMinX(view.frame),CGRectGetMaxY(view.frame), newWidth , -newHeight)];
break;
case 4:
[view setFrame:CGRectMake(CGRectGetMaxX(view.frame),CGRectGetMaxY(view.frame), -newWidth, -newHeight)];
break;
}
}
completion:nil];
}
Это должно быть ожидаемым в результате на ZoomIn Animation:
Откуда вы знаете, что оно не работает? Если вы измените размер UIImageView, это не обязательно изменит размер _image_, отображаемый UIImageView. Поэтому, возможно, изображение будет меняться так, как вы ожидаете. Один из способов узнать: дать изображению цвет фона, чтобы вы могли видеть, где он на самом деле, независимо от изображения, которое оно содержит. – matt
Однако, если UIImageView действительно _isn't_ будет изменен, поскольку его супервизор будет изменен, тогда да, что-то не так с вашими ограничениями. – matt
Причина, по которой я помещаю зеленый цвет фона, - это проверить, работает ли он нормально. Дело в том, что когда-либо были ограничения, которые я поставил, это не работает. Можете ли вы предложить что-нибудь? Спасибо –