2017-06-16 2 views
0

Ich habe eine UIScrollView, für die ich ein UIView haben, die die subview des scroll view ist, die UIView eine Menge anderer Subviews hat und ich erhalte die Höhe für sie dynamisch nach der Subviews Zugabe, dies ist mein Stück Code der Ansicht hinzufügen AnsichtUIScrollView Bounces, um entweder nach oben oder unten

CGRect frameOfView = CGRectMake(0, 0,Get_Bounds.width, globalYPosition); 
self.parentProductDetailView = [[UIView alloc]initWithFrame:frameOfView]; 

ich die Ansicht auf diese Weise initialisiert bin zuerst blättern und dann nach Ausschöpfung aller Subviews Zugabe ich dies tue,

frameOfView.size.height = globalYPosition; 

[self.parentProductDetailView layoutSubviews]; 
self.parentProductDetailView.frame = frameOfView; 
[self.productDetailScrollView addSubview:self.parentProductDetailView]; 
self.productDetailScrollView.contentSize = CGSizeMake(0, self.parentProductDetailView.frame.size.height *1); 

Aber mein scrollview scrollt nicht richtig, es klebt entweder oben oder unten.

Hier ist globalYPosition die Summe der Höhe aller subviews hinzugefügt parentProductDetailView

+0

Nur eine Einstellung im Dunkeln: Haben Sie in Ihrer Bildlaufansicht Paging aktiviert? Es sollte deaktiviert sein. –

+0

Bitte fügen Sie dies als Antwort hinzu Ich werde es aktualisiert speichern meinen Tag. :) –

Antwort

1

Das Verfahren, das Sie richtig scheint verwendet. Unabhängig von den Unteransichten sollte Ihre Bildlaufansicht ordnungsgemäß durchsucht werden, indem Sie einfach eine größere Inhaltsgröße als die Bildgröße verwenden.

Die Bildlaufansicht kann bleiben, fangen Sie an einigen Punkten, wenn Paging aktiviert ist, was in Ihrem Fall passiert. Wenn die Inhaltsansicht größer als das 1,5-fache der Bildgröße ist, wird die Bildlaufansicht nach oben/unten oder links/rechts ausgerichtet. Wenn es kleiner ist, wird es nur an der Startposition einrasten.

Dies kann sehr nützlich sein für Situationen wie ein Seitenmenü, das einen Teil eines Bildschirms nimmt, aber in Ihrem Fall sollten Sie einfach das Paging deaktivieren und das Scrollen sollte gut funktionieren.

Verwandte Themen