UIView animation trying to change the frame size doesn't work in iOS 8 but in iOS 7
Solution 1
You should disable pregenerated constraints. The most simple way is to use autoresizing masks instead of constraints for animating view.
containerView.translatesAutoresizingMaskIntoConstraints = YES;
You can put this code to your -viewDidLoad
method or just above [UIView animateWithDuration:...
Solution 2
is autolayout enabled? maybe in iOS 8 some additional constrains are adding during build time
try to call [self.view layoutIfNeeded];
in animatin block, after animation code itself
UPDATE
__block CGRect frame = containerView.frame;
frame.origin.x = 0;
frame.origin.y = 67;
frame.size.height = 643;
frame.size.width = 1024;
[UIView animateWithDuration:0.5 animations:^{
containerView.frame = frame;
...
}completion:^(BOOL finished) {
...
}];
ƒernando Valle
Android/iOs/web Analyst-Developer who loves UX & UI C, C++, java, javascript, objective C, python... An expert is the person who have committed every error in a determined field.
Updated on June 08, 2022Comments
-
ƒernando Valle almost 2 years
I wanted to resize an UIView, my code works perfect in iOS 7.1 but when I run it in iOS 8 it didn't work properly (I will explain below).
I have my UIView int the storyboard with values (0,67,511,320), I want to resize to full screen on iPad, so I added the following code:
[UIView animateWithDuration:0.5 animations:^{ CGRect frame = containerView.frame; frame.origin.x = 0; frame.origin.y = 67; frame.size.height = 643; frame.size.width = 1024; containerView.frame = frame; ... }completion:^(BOOL finished) { ... }];
I wanted something like:
_________________________________ | | | | | | | A | | |___________| | | | | BACKGROUND | | | | | |_________________________________| | V _________________________________ | | | | | | | A | | | | | | | | | |_________________________________|
But it starts the animation like (0,67,0,0) to (0,67,511,320)
Any clue about what is happening? Or alternative?