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?
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:...