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

OK、わかりました。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 に答える