J'ai maintenant trouvé la solution. L'animation commence à partir du point {0, 920}
a {0, 352}
. Le problème était que le UITableView
a commencé avec une taille de {160, 568}
J'ai donc modifié la taille de la UITableView
a {160, 920}
avant que l'animation ne soit lancée.
En ce qui concerne la courbe d'animation inconnue, j'ai simplement défini le paramètre à animationCurve << 16
pour la convertir d'une courbe d'animation de vue en une option d'animation de vue.
La valeur n'est pas égale à la courbe d'animation linéaire, d'entrée, de sortie et de sortie.
Voici mon code :
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(_keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
et :
- (void)keyboardWillShow:(NSNotification *)aNotification {
NSDictionary *userInfo = aNotification.userInfo;
//
// Get keyboard size.
NSValue *beginFrameValue = userInfo[UIKeyboardFrameBeginUserInfoKey];
CGRect keyboardBeginFrame = [self.view convertRect:beginFrameValue.CGRectValue fromView:nil];
NSValue *endFrameValue = userInfo[UIKeyboardFrameEndUserInfoKey];
CGRect keyboardEndFrame = [self.view convertRect:endFrameValue.CGRectValue fromView:nil];
//
// Get keyboard animation.
NSNumber *durationValue = userInfo[UIKeyboardAnimationDurationUserInfoKey];
NSTimeInterval animationDuration = durationValue.doubleValue;
NSNumber *curveValue = userInfo[UIKeyboardAnimationCurveUserInfoKey];
UIViewAnimationCurve animationCurve = curveValue.intValue;
//
// Create animation.
CGRect tableViewFrame = self.tableView.frame;
bTableViewFrame.size.height = (keyboardBeginFrame.origin.y - tableViewFrame.origin.y);
self.tableView.frame = tableViewFrame;
void (^animations)() = ^() {
CGRect tableViewFrame = self.tableView.frame;
tableViewFrame.size.height = (keyboardEndFrame.origin.y - tableViewFrame.origin.y);
self.tableView.frame = tableViewFrame;
};
//
// Begin animation.
[UIView animateWithDuration:animationDuration
delay:0.0
options:(animationCurve << 16)
animations:animations
completion:nil];
}
0 votes
Vérifiez si cela résout votre problème stackoverflow.com/questions/11313951/
0 votes
Désolé, j'ai oublié d'écrire que j'utilise une
UIViewController
avec unUITableView
subview.0 votes
Quels sont les détails de l'animation que vous attendez ?
2 votes
@Krishnan pas un 7, j'imagine.