Hi,
ich probiere das Paging der UIScrollView selber zu programmieren. Erstmal zu dem Problem, vielleicht hat ja einer eine bessere Idee.
Ich habe mehrere Views in einer ScrollView. Die Scrollview geht über die gesamte Breite des iPads. Nun will ich aber beim durchblättern, das er beim Paging immer nur eine View weiter geht und die anderen rechts und links aber noch anzeigt. Das geht ja nach dem was ich weiß nicht, da Paging immer über die ganze Breite oder Höhe gehen muss.
Also dachte ich mir ich programmiere mir das Paging selber, mit der ganzen Delegate von UIScrollView.
Alles anzeigen
Die Idee war es mit scrollViewWillBeginDrgging, den start Punkt zu speichern, mit scrollViewEndDragging den Endpunkt zu speichern und in scrollViewDidEndDrgging, dann mit setContenOffset, nach rechts oder links immer nur ein kleines Stück (321 Pixel / eine Viewbreite) weiter zu scrollen. Leider funktioniert das so nicht, manchmal geht es manchmal nicht. Über die Konsole lasse ich mir immer die Start und Endpunkte angeben, so wie es aussieht führt er die setContentOffset nicht richtig aus.
Hat einer eine Idee oder sieht etwas was ich falsch mache?
Schon mal Danke.
Gruß
Cabaalo
ich probiere das Paging der UIScrollView selber zu programmieren. Erstmal zu dem Problem, vielleicht hat ja einer eine bessere Idee.
Ich habe mehrere Views in einer ScrollView. Die Scrollview geht über die gesamte Breite des iPads. Nun will ich aber beim durchblättern, das er beim Paging immer nur eine View weiter geht und die anderen rechts und links aber noch anzeigt. Das geht ja nach dem was ich weiß nicht, da Paging immer über die ganze Breite oder Höhe gehen muss.
Also dachte ich mir ich programmiere mir das Paging selber, mit der ganzen Delegate von UIScrollView.
PHP-Quellcode
- -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
- scrollStart = scrollView.contentOffset.x;
- NSLog(@"xStart:%i",scrollStart);
- }- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
- scrollEnd = scrollView.contentOffset.x;
- NSLog(@"xEnd:%i",scrollEnd);
- }
- - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
- if (scrollStart < scrollEnd) {
- scrollStart = scrollStart+321;
- [scrollView setContentOffset:CGPointMake(scrollStart,scrollView.contentOffset.y) animated:YES];
- NSLog(@"Neuer - Start:%i",scrollStart);
- }
- else {
- scrollStart = scrollStart-321;
- if (scrollStart < 0) {
- scrollStart = 0;
- }
- [scrollView setContentOffset:CGPointMake(scrollStart,scrollView.contentOffset.y)animated:YES];
- NSLog(@"Neuer - Start:%i",scrollStart);
- }
- }
Die Idee war es mit scrollViewWillBeginDrgging, den start Punkt zu speichern, mit scrollViewEndDragging den Endpunkt zu speichern und in scrollViewDidEndDrgging, dann mit setContenOffset, nach rechts oder links immer nur ein kleines Stück (321 Pixel / eine Viewbreite) weiter zu scrollen. Leider funktioniert das so nicht, manchmal geht es manchmal nicht. Über die Konsole lasse ich mir immer die Start und Endpunkte angeben, so wie es aussieht führt er die setContentOffset nicht richtig aus.
Hat einer eine Idee oder sieht etwas was ich falsch mache?
Schon mal Danke.
Gruß
Cabaalo