1

マスク付きのparentViewControllerコンテナ(柔軟な幅と高さ)が含まれています。コンテナーの幅はビューの ~80% です。デバイスを回転させると、「間違った」サイズで呼び出されます。ビューサイズを取得します。customViewControllerautoresizingparentViewControllerviewWillTransitionToSize:withTransitionCoordinator:parentsViewController

ここにの一部ですcustomViewController

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    NSLog(@"viewWillTransitionToSize %@", NSStringFromCGSize(size));
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
    [self resizeViewToWidth:size.width];
    [self performSelector:@selector(didRotate) withObject:nil afterDelay:1.0];
}

-(void)didRotate
{
    NSLog(@"didRotate %@", NSStringFromCGSize(self.view.frame.size));
}

//it creates this log
//viewWillTransitionToSize {667, 331}
//didRotate {617, 311}   //this is correct size after applying autoresizing masks

少なくとも 2 つの異なるサイズが表示されているのに、一度しか呼び出されないのはなぜですか? マスクの自動サイズ変更でできるのであれば、ビューサイズを計算したくありません。

最初に自動サイズ変更マスクを適用し、適用後にサイズを取得するにはどうすればよいですか?

自動サイズ変更マスクviewWillTransitionToSizeを使用する際の正しい使用方法は何ですか?

4

1 に答える 1