2012-12-04 7 views
1

J'essaye de déplacer un UIView d'une vue de parent à l'autre et également de le redimensionner, maintenant je le reçois, mais animé, comment est-ce que je peux faire ceci sans animation? videoMover est la vue qui est déplacée et dimensionnée en fonction de son nouveau parent.Redimensionner un UIView sans animation

Voici mon code qui effectue le redimensionnement, le parent de la vue est modifié avant cela.

CGRect fsRect = CGRectMake(0,0,videoMover.superview.bounds.size.width, videoMover.superview.bounds.size.height); 
CGSize presentationSize = CGSizeMake(1280,720); 
CGSize viewSize = fsRect.size; 
CGFloat scale = fmin(viewSize.width/presentationSize.width, viewSize.height/presentationSize.height); 
CGRect videoRect = AVMakeRectWithAspectRatioInsideRect(presentationSize,fsRect); 
videoMover.autoresizesSubviews = NO; 
videoMover.frame = fsRect; 
videoMaster.frame = fsRect; 
((CALayer*)[videoMaster.layer.sublayers objectAtIndex:0]).frame = fsRect; 

Répondre

0

OK, figured it out .. Transforme la animation a été que j'INTERVENUES mettais le cadre de mon CALayer. Je l'ai fixé avec ceci:

[CATransaction begin]; 
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions]; 
((CALayer*)[videoMaster.layer.sublayers objectAtIndex:0]).frame = fsRect; 
[CATransaction commit]; 
1

simple, d'abord déplacer votre point de vue et le mettre caché, et après la fin en mouvement, juste faire votre point de vue visible.

[yourView setHidden:YES/NO];