2013-09-23 19 views
5

Bir alt görüntülü bir scrollView varsa ve alt görünümde bir pan hareketi tanıyıcı varsa, scrollView'un pan hareketi geçersiz kılmanın alt görünüm panosu olur. İstediğimin tam tersi olduğunu düşünüyorum, bu yüzden bir alt görünümü sürükleyip kaydırma görünümünde kaydırırım, ancak başka bir alana dokunursam kaydırma görünümü normal olarak kaydırılır. Bunu kurmak için kolay bir yolu var mı?UIScrollView, alt ekranın pan jest tanımlayıcılarını geçersiz kılar

cevap

12

İşte benim için çalışıyor ne:

UIPanGestureRecognizer *subviewPanRecognizer = [[UIPanGestureRecognizer alloc] 
    initWithTarget:self action:@selector(panSubview:)]; 
[subview addGestureRecognizer:subviewPanRecognizer]; 

// play nice with subview's pan gesture 
[scrollView.panGestureRecognizer 
    requireGestureRecognizerToFail:subviewPanRecognizer]; 
+0

Varsayılan davranış gibi görünüyor (bu, UIImageView alt görünümünde bir UIScrollView uygulamasında gözlemlediğim şey). Birisi onaylayabilir mi? – Norswap

+1

benim için işe yaramıyor –

+0

Özellikle subview üzerinde bir delege uygularken ve "gestureRecognizerShouldBegin:" uygulamasında güzel çalışıyor. –

0

aşağıda bu iki temsilci üzerine yaz Bu her iki jest anlamasını sağlayacaktır

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
return YES; 

} varsayılan dönüş HAYIR, Bu yüzden üzerine yazmamız ve YES'a dönmemiz gerekiyor.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { 
    if ([otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { 
     return NO; 
    }else{ 
     return YES; 
    } 
} 
return YES; 

} Bu temsilci istediğiniz gibi ootherGestureRecognizer tarafından başarısız gerekecektir gestureRecoginzer isim var, bu her şeyi yapabilir yılında

, yapmanız gereken tüm ne yargılamak için ise Bu iki jest tür ve geri dönüş YES veya NO.

İlgili konular