0

スライドトランジションを使用していますが、

このコードを使用することで、

        Home *lisnx = [[Home alloc] init];
        CATransition *animation = [CATransition animation];
        [self presentModalViewController:lisnx animated:NO];
        [animation setDuration:0.40];
        [animation setType:kCATransitionPush];
        [animation setSubtype:kCATransitionFromLeft];
        [[lisnx.view layer] addAnimation:animation forKey:@"SwitchToView1"];
        [lisnx release];

しかし、ランドスケープモードでは、あるビューから別のビューに移動すると、すべてがランドスケープのために右にシフトし、このコードを使用しました。

        self.view.bounds=CGRectMake(0.0,0.0,480.0,320.0);
        scroll.frame=CGRectMake(0.0,0.0,480.0,320.0);
        bgImg.frame=CGRectMake(0.0,0.0,480.0,320.0);

この問題から抜け出す方法は、誰かが私を助けてください。

4

1 に答える 1

0

ポートレートとランドスケープの両方で、ビューごとに異なるフレームを指定する必要があります。

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
    scroll.frame=CGRectMake(0.0,0.0,480.0,320.0); 
    ...            
 } 
else {

 scroll.frame=CGRectMake(0.0,200.0,200.0,320.0);
 ...
}

ここにあなたのフレームを与えてください、

于 2012-06-04T12:08:23.117 に答える