在没有动画的情况下调整UIView的大小

时间:2012-12-04 18:36:33

标签: iphone objective-c uiview

我正在尝试将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;

2 个答案:

答案 0 :(得分:1)

简单,首先移动视图并将其隐藏,移动完成后,只需将视图显示即可。

 [yourView setHidden:YES/NO];

答案 1 :(得分:0)

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

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