0

メインビューでsubViewを作成していますが、問題はありませんが、何かを追加すると、アプリが横向きモードであるにもかかわらず縦向きの境界がかかるという問題があります。

ここに私のコードがあります

 backgroundViewBounds= [[UIScreen mainScreen] bounds];

 backgroundView = [[UIView alloc]initWithFrame:backgroundViewBounds];
 [self.view.window addSubview:backgroundView] ;

 CGRect subViewBounds = CGRectMake(0,0,1100,1100) ;
 subView=[[UIView alloc]initWithFrame:subViewBounds];

 subView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgPopupback"]];

 [backgroundView addSubview:subView] ;


 UIImageView*popImageView=[[UIImageView alloc] initWithFrame:CGRectMake(600,745,165,108)];


popImageView.image=[UIImage imageNamed:@"popup3.png"];

[popImageView setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];

[subView addSubview:popImageView];

私はこれを検索しましたが、veiwWillappearで使用すると言う人もいますが、私とは連携していません。

4

2 に答える 2

0

UIScreen のサイズを解釈する方法を確認するために向きを使用します。

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
        if (orientation!=UIDeviceOrientationPortrait) {

            int width = screenRect.size.height;
            int height = screenRect.size.width;
            screenRect.size.height = height;
            screenRect.size.width = width;

            backgroundView.frame = screenRect;
        }
        else{
            backgroundView.frame = screenRect;
        }
于 2013-07-16T07:31:47.357 に答える
0

回転中に画面の向きを変更したい場合は、次を追加します。

[[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(deviceOrientationDidChangeNotification:)
     name:UIDeviceOrientationDidChangeNotification
     object:nil];

向きが変わったときに実行するウィッチコードを通知します。

私のデバイス方向

- (void)deviceOrientationDidChangeNotification:(NSNotification*)note
{
UIView * backgroundView = [self viewWithTag:10];
CGRect screenRect = [[UIScreen mainScreen] bounds];
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation!=UIDeviceOrientationPortrait) {

    int width = screenRect.size.height;
    int height = screenRect.size.width;
    screenRect.size.height = height;
    screenRect.size.width = width;

    backgroundView.frame = screenRect;
    mainView.center = backgroundView.center;
}
else{
    backgroundView.frame = screenRect;
    mainView.center = backgroundView.center;
}
}

それが役立つことを願っています

于 2013-07-16T08:24:27.333 に答える