1

RootViewControllerに残された横向きに向きを設定しましたが、viewDidLoadまたはviewWillAppearでは、VCのビュー境界が回転していません。viewDidAppearでは、正しいフレームがあります。viewDidAppearで良い場所ではないと思いますが、どうすればよいですか?

    @implementation RootViewController


    - (void)viewDidLoad
    {
        [super viewDidLoad];
        CGRect frame = self.view.bounds;
    }

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        CGRect frame = self.view.bounds;

    }

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        CGRect frame = self.view.bounds;
    }

    #pragma mark - Orientation

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
    {
        return toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft;
    }

    //for iOS 6 or later

    - (BOOL)shouldAutorotate
    {
        return YES;
    }

    - (NSUInteger)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskLandscapeLeft;
    }

    @end        

そして、ログは次のことを示しています。

    viewDidLoad,x = 0.000000, y = 0.000000,w = 300.000000 h = 480.000000
    viewWillAppear:,x = 0.000000, y = 0.000000,w = 300.000000 h = 480.000000
    viewDidAppear:,x = 0.000000, y = 0.000000,w = 480.000000 h = 300.000000
4

2 に答える 2

1

向きの変更後にフレームを設定できます。

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
于 2012-11-30T08:47:03.557 に答える
0

私はそれがこの機能にあるべきだと思います

  • (void)viewDidLayoutSubviews {}

Appleのドキュメントによるとここに画像の説明を入力してください

于 2012-11-30T09:02:16.617 に答える