The following gives a nice linaer transition from one frame location to another frame location:

dispatch_async(dispatch_get_main_queue(), ^{
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];
        _bottomAnimatedBar.frame  = frame;
        [UIView commitAnimations];
    });

This also gives a nice linear transition, although it can be a little bumping depending on the coordinates of the frame:

[UIView
     animateWithDuration:0.5
     animations:^{
         _bottomAnimatedBar.frame  = frame;
     }];