UIScrollView dans la vue conteneur a une taille d'image incorrecte

J'ai un UIContainerView avec Frame = {X = 20, Y = 88, Width = 728, Height = 660} et un UIScrollView embedded à l'intérieur.

L'UIScrollView signale Frame = {X = 0, Y = 0, Largeur = 768, Height = 960} qui entraîne un décalage de 40 (la section en or) dans la largeur lors de la pagination de UIScrollView. Il en résulte la sortie suivante ayant paginé une fois vers la gauche:

entrez la description de l'image ici

Toutefois, ContentSizeForViewInPopover signale la taille d'image attendue = {Width = 728, Height = 660}. Comment puis-je corriger le cadre UIScrollView pour avoir la bonne taille?

Voici le code pour ViewDidLoad () de l'UIViewController embedded:

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); 

Vérifiez que dans IB sous le parent UIViewController , dans la section Layout de l'inspecteur d'attributes, l'option 'Ajuster les insertions de la vue défilante' est décochée. J'ai eu un problème similaire qui m'a fait trébucher pendant un certain time et c'était tout ce que je devais faire pour get la layout appropriée.

appelez [self.ScrollView layoutIfNeeded]; avant cette ligne

 frame.X = ScrollView.Frame.Width * i; // expected {728 * i} but is {768 * i} 

ça marche avec moi, goodluck

Dans IOS 7.0, utilisez self.automaticallyAdjustsScrollViewInsets = NO; dans ViewDidLoad

Essayez de créer votre UIScrollView dans le code, apparemment le concepteur remplace tout ajustement que vous appliquez dans le code.