2

我正在尝试将 UIView 从一个父视图移动到另一个父视图并调整它的大小,现在我得到了它,但是动画,我怎么能在没有动画的情况下做到这一点?videoMover 是根据其新父级移动和调整大小的视图。

这是我正在调整大小的代码,在此之前更改了视图的父级。

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;
4

2 回答 2

1

很简单,首先移动你的视图并设置它隐藏,移动完成后,让你的视图可见。

 [yourView setHidden:YES/NO];
于 2012-12-04T19:12:07.687 回答
0

好的,想通了。当我在我的 CALayer 上设置框架时,动画正在发生。我用这个修复了它:

[CATransaction begin];
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
((CALayer*)[videoMaster.layer.sublayers objectAtIndex:0]).frame = fsRect;
[CATransaction commit];
于 2012-12-04T18:45:49.087 回答