1

私は、すべての単一ページの数を含む を持っていますUIPageControlUILabelUIImageView

次のコードを使用します。

pageControl.numberOfPages=[arrData count];
for(int i=0;i<[arrData count];i++) {
    NSString *body=[NSString stringWithString:[[arrData objectAtIndex:i] objectForKey:@"body"]];
    NSLog(@"body %d=%@",i,body);

    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * i;
    frame.origin.y = 0;
    frame.size.width = self.scrollView.frame.size.width;
}

ポートレートのアイテムが正しく見えます。デバイスを回転させるとself.scrollView.frame、縦置きレイアウトと呼ばれるため、明らかにレイアウトが崩れます。UIScrollViews回転の作成とUIPageControlsコードによる処理をどのように処理する必要がありますか?

4

1 に答える 1

2

あなたの特定の問題は、ビューのフレームが「ランドスケープのみ」であることとは何の関係もありません (これは、フレームと境界の誤った表現です。非常に良い説明があるため、UIKit レンダリングに関するトークの冒頭を見ることをお勧めします)。これは、回転の場合にビューが何をすべきかを伝えられていないという事実に関係しています。

自動回転、事前制約 (iOS 6 >) は、autoresizingmasks で処理できます (具体的には、あなたの場合、おそらくUIViewAutoresizingFlexibleTopMarginが必要だと思います)。iOS 6 以降をターゲットにしている場合は、VFLを使用してその場で制約することもできます。

于 2012-12-08T23:20:31.937 に答える