Frame = {X=20,Y=88,Width=728,Height=660} の UIContainerView と、その中に埋め込まれた UIScrollView があります。
UIScrollView は Frame = {X=0,Y=0,Width=768,Height=960} を報告し、UIScrollView のページング時に幅のオフセットが 40 (金色のセクション) になります。左に1回ページングされた次の出力が得られます。
ただし、ContentSizeForViewInPopover は、予想されるフレーム サイズ = {幅 = 728、高さ = 660} を報告します。UIScrollView フレームを正しいサイズに修正するにはどうすればよいですか?
埋め込み UIViewController の ViewDidLoad() のコードは次のとおりです。
var pages = PageControl.Pages = 2;
Console.WriteLine("ScrollView Frame: {0}", ScrollView.Frame);
for(int i = 0; i < pages; i++)
{
RectangleF frame
frame.X = ScrollView.Frame.Width * i; // expected {728 * i} but is {768 * i}
frame.Y = 0;
frame.Size = ScrollView.Frame.Size;
Console.WriteLine("Subview frame: {0}", frame);
ScrollView.AddSubview(
new UIView(frame) {
Bounds = frame,
BackgroundColor = GetRandomColor()
});
}
ScrollView.ContentSize = new SizeF(ScrollView.Frame.Width * pages, ScrollView.Frame.Height);
Console.WriteLine("ScrollView ContentSize = {0}", ScrollView.ContentSize);