2 つのサブビューを含む UIScrollView があり、それぞれがデバイスの画面のサイズとまったく同じです。で子ビューのサイズを設定しましたAppDelegate
:
CGRect screenRect = [[self window] bounds];
[[myViewController1 view] setFrame:screenRect];
screenRect.origin.x = screenRect.size.width;
[[myViewController2 view] setFrame:screenRect];
次に、これらのビューを a に追加しUIScrollView
、UIScrollViewcontentSize
を画面の幅の 2 倍に設定します。
CGRect containerRect = CGRectMake(0, 0, screenRect.size.width * 2, screenRect.size.height);
UIScrollView *sv = (UIScrollView *)[myRootViewController view];
[sv addSubview:[myViewController1 view]];
[sv addSubview:[myViewController2 view]];
[sv setFrame:[[self window] bounds]];
[sv setContentSize:containerRect.size];
アプリを実行すると、予想どおり、ビューが並べて表示されます。ただし、どちらのビューも画面幅よりもはるかに広いです。さらに、UIScrollView
高さが画面の高さと同じであるため、垂直スクロールが制限されません。
UIScrollView で垂直スクロールを制限し、その子を適切なサイズのフレームに強制的にレンダリングするにはどうすればよいですか?