Tous,Mettre en œuvre un effet de glissement pour un UIView
J'essaie désespérément d'écrire une méthode qui anime l'ajout d'un sous-vue dans une sorte d'effet « glisser vers le haut », où les diapositives de vue sur l'écran d'un point particulier. Je peux obtenir un UIImageView pour travailler, mais j'ai du mal à l'appliquer à un UIPickerView. Ce qui se passe, c'est que l'UIPickerView ne bouge et ne s'anime que pour environ un quart de sa hauteur. Le UIImageView démarre vraiment avec une hauteur de 0 et glisse sur l'écran.
Voici mon code à ce jour:
+ (void) slideupView:(UIView*) view duration:(CGFloat) duration completion:(void (^)(BOOL
finished)) completion {
CGRect endBounds = view.bounds;
CGRect startBounds = endBounds;
startBounds.size.height = 0;
view.bounds = startBounds;
view.contentMode = UIViewContentModeTop;
view.clipsToBounds = YES;
view.layer.anchorPoint = CGPointMake(0.5, 1.0);
CGPoint pos = view.layer.position;
pos.y += (endBounds.size.height/2);
view.layer.position = pos;
[UIView animateWithDuration:duration delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
view.bounds = endBounds;
}
completion:completion];
}
des choses que j'ai lu, il semble que l'approche encouragée consiste à utiliser le rectangle de bornes au lieu du cadre car l'approche du cadre ne fonctionne pas si vous avez modifié la transformation.
J'ai aussi lu que l'on ne peut pas changer la hauteur d'un UIPickerView, donc je me demande si c'est la raison de ce problème. Certes, je ne l'ai pas essayé sur une autre sous-classe UIView.
Des pensées? Est-ce qu'il y a une meilleure approche? Je veux juste animer une vue sur l'écran, similaire à présenter une vue de contrôleur de vue modale, sauf que je ne veux pas qu'il couvre tout l'écran. Je veux juste un effet de glissement vers le haut, comme quand le clavier apparaît sur l'écran.
Merci! Justin
Assez simple, bien que je me demande pourquoi ne pas utiliser la propriété view.frame? – tia
Mais ce n'est pas aussi simple que d'animer le cadre, puisque je veux commencer l'animation à partir d'un point arbitraire de l'écran, pas seulement de l'extérieur de l'écran. –
oui ce n'est pas une tâche facile d'ajouter une animation de vue d'un point particulier sur l'écran, il peut être possible par un truc que vous pouvez utiliser une image pour masquer votre animation à ce moment mais cela dépend de votre vue d'écran complète. – saadnib