0

iPad アプリを横向きで動作させようとしています。ランドスケープ モードで、一部のコントロールの位置を変更したいと考えています。ログを取得したので、メソッド内にいることがわかりますが、オブジェクトはどれも移動しません。何か不足していますか?

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if(toInterfaceOrientation==UIInterfaceOrientationLandscapeRight ||
   toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft)
    {
        NSLog(@"in landscape");
        // I would like to re-position my controls here but not working
        image1.frame = CGRectMake(318, 501, 100, 100);
        btnNext.frame = CGRectMake(200, 455, 100, 35)
    }
}
4

2 に答える 2

0

コードは iOS 5 で動作しますが、iOS 6 以降では方向マスクを使用してみてください。内部のオブジェクトの回転を実装できるメソッドを次に示します。

- (BOOL) shouldAutorotate
{
return YES;
 }

-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskLandscapeLeft   | UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

不要なマスクを取り外すことができます。iOS 6 では、このメソッド内に必要なオブジェクトを入力した後、実行しようとしているものをアーカイブする必要があります。

于 2013-04-07T05:38:15.063 に答える