2013-06-09 9 views
7

Ich habe dieses Problem, und ich kann nirgendwo anders erwähnt werden. Wenn ich das Bouncen in einem UIScrollView deaktiviere (also sind auch Derivate wie UITableView betroffen), ist es möglich, den Scrollindikator hängen zu lassen, wenn ein Benutzer nach oben scrollt und dann mit einer anderen Geste versucht, weiter zu scrollen mit einem schnellen Wischen.Scrolling Indicator wird blockiert, wenn Bouncing für UIScrollView deaktiviert ist

Sobald dies geschieht, wird der Scrollindikator nicht mehr verschwinden, es sei denn, ein Benutzer scrollt erneut oder tippt auf die Scrollansicht. Das größte Problem ist, dass der Scrollview diesen Tipp erfasst. Wenn Sie also versuchen, auf eine Tabellenzelle zu tippen, passiert beim ersten Mal nichts.

Ich habe dies mit nur einer Barebones-App auf meinem Gerät und dem Simulator getestet, und es scheint nur ein generelles Problem mit UIScrollView zu sein und das Bouncing zu deaktivieren; Wie ich schon sagte, kann ich im Internet keine andere Erwähnung finden.

Ist das nur ein Fehler? Ist das erwartetes Verhalten? Mache ich etwas falsch? Wenn dies ein Fehler ist, weiß jemand dann von einem Workaround oder einer Lösung?

+0

Ich habe das gleiche oder ein ähnliches Problem gerade jetzt. Ich schätze, ich werde das Prellen für jetzt aktivieren ... Wie du sagst, wenn dieses Problem auftritt, wird der nächste Tipp von der Tabellenansicht "verschluckt", so dass eine Zelle zweimal angetippt werden muss, um ausgewählt zu werden etc. – Jonny

+0

Hallo Leute, hast du eine Lösung für dieses Verhalten gefunden? Vielen Dank. – apascual

Antwort

0

Haben Sie eine Tippgeste für Ihren Scrollview hinzugefügt, wenn nicht, versuchen Sie es dann hinzuzufügen?

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resignsKeyboard)]; 
    [self.scrollView addGestureRecognizer:singleTap]; 
    singleTap.numberOfTapsRequired = 1; 
    singleTap.delegate = self; 

Add Delegat UIGestureRecognizerDelegate in Ihrer Interface-Datei dann die delgate Methode

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
if (self.scrollView.superview != nil) 
    { 
     if ([touch.view isKindOfClass:[UIButton class]]||[touch.view.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview isKindOfClass:[UITableViewCell class]]) 
      // we touched our control surface 
     { 
      return NO; // ignore the touch 
     } 

    } 

    return YES; // handle the touch 
} 

Tippgesten implementieren // So wie ausscheid Tastatur andere Aktionen auf Scroll-Touch ausführen, wenn

benötigt verwenden
-(void) resignsKeyboard 
{ 
    [self.view endEditing:YES]; 
    [self.scrollView setContentOffset:CGPointMake(0,0) animated:YES]; 
} 
Verwandte Themen