2013-04-04 12 views
5

UIScrollView içinde bazı UIButtonlarım var, ancak düğme dokunuşlarını geciktirmek istemiyorum. Ancak, kaydırma görünümü bir sürükle/kaydır algıladığında, UIButton tuşunu iptal etmek ve UIScrollView'ın kaydırılması ile devam etmek istiyorum. sürüklenen zamaniOS UIScrollView iptal UIButton'a dokunarak kaydırma üzerine dokunun

ben aşağıdaki dahil ettik

...

_scrollView.delaysContentTouches = NO; 

... ama (tabii ki) düğmesine dokunun iptal etmez. Bu işlevselliği nasıl uygulayacağım konusunda herhangi bir önerisi var mı?

cevap

7

UIScrollView'un bu yöntemini geçersiz kılabilirsiniz.

-(BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
    return YES; 
} 

Ve UIButton içinde

, farklı denetim olayları için farklı bir yöntem eklemek gerekir. UIControlEventTouchDown için vurgulama efekti gösterecek

  1. . UIControlEventTouchUpInside | UIControlEventTouchUpOutside için tetikleme düğmesi;
  2. UIControlEventTouchCancel için net vurgulama efekti.
+1

iptal edilmeden hemen önce düğmeye basmaya devam ettiğini düşünür. Bu istenen çözümdür. Teşekkürler. – lucien

+0

UIControlEventTouchCancel, eksik olduğum tek bildirim oldu ve çalıştı. Teşekkürler! – cgossain

1

Bir bildirimi tetiklemek ve düğmelerinizin kodunu 'dinleyerek dinlemeyi iptal etmek için scrollViewWillBeginDragging'i kullanabilirsiniz. Bence yapmaya çalıştığın şey bu, ama sorunun doğru bir şekilde anlaşılmış olup olmadığından emin değilim.

+0

Geri bildiriminiz için teşekkür ederiz. ScrollViewWillBeginDragging'i denedim ancak kaydırmadan önce bir düğmeye dokunduğunuzda tetiklenmiyor. İstediğim şey bir düğmeye basmak ama gecikme yok. Ardından, parmağınızı hareketsiz hâlâ hareket ettirirseniz, düğmeyi iptal eder ve kaydırmaya başlar. – lucien

+0

iOS ana ekranında bunu deneyin ... bir uygulamaya dokunun ve karanlık olduğunu fark edersiniz, ancak parmağınızı sürüklediğiniz anda dokunmayı iptal eder ve yerine kaydırır – lucien

+0

Düğmenin hemen yanmasını istiyorsanız Bir eylem ancak kaydırma görünümü iptal etmek için sürüklendiğinde? Ve bir düğmeye bastığınızda, sürükleyin, scrollViewWillBeginDragging çağrılmıyor mu? Ana ekran ile iyi bir örnek. – Psiticosis