2012-04-30 27 views
5

Kullanıcının bir UIScrollView öğesini ne zaman kaydırdığını bulmak istiyorum. scrollViewDidScroll, ne zaman gerçekleşir, ancak başka bir zamanda da çağrılır - kullanıcı, görünümü sınırlar dışına kaydırır ve sonra serbest bırakır, görünüm, o yere geri atlar ve kullanıcı, 'kullanıcı' olmasa bile çağrılır Ekrana hiç dokunmayın (görünüm kendi kendine kaydırılır).UIscrollView DidScroll - yalnızca dokunulduğunda

Kaydırma ve kullanıcı dokunuşlarını birlikte nasıl algılayabilirim?

cevap

9

UIScrollView, kaydırma işleminin kullanıcı tarafından yapılıp yapılmadığını gösteren dragging bir özelliğe sahiptir. Kullanıcının kaydırma görünümünü kaydırıp kaydırmayacağını veya kaydırmanın başka bir şeyden (animasyon gibi) kaynaklanıp kaynaklanmadığını görmek için aşağıdakileri yapabilirsiniz:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.dragging) { 
     // scrolling is caused by user 
    } 
} 
+1

Teşekkürler! Bu, –

+0

için aradığım şeydi. Kaydırmanın kullanıcı tarafından mı yoksa program aracılığıyla mı yapıldığını kontrol etmek için bunu UICollectionView'da kullandım. –

+0

Kullanıcı ekrana gidip kaydırma görünümü hala hız nedeniyle kayıyorken 'sürükleme 'özelliği doğru ayarlanıyor mu? –