SORU
7 Mart 2011, PAZARTESİ


UİGestureRecognizer blok dokunma olayları işlemek için küme

Bu işin nasıl olduğunu anlamaya çalışıyorumdoğru yolu. Durumu tasvir etmeye çalıştım: enter image description here

Bir UİView bir küme olarak bir UİTableView ekliyorum. Bu UİView dokunun ve pinchGestureRecognizer bir tepki verir, ama bunu yaparken tableview bu iki hareketleri için (hala dokunuşa tepki) tepki vermiyor.

Bunu aşağıdaki kod ile iş yaptım, ama belli ki iyi bir çözüm değil ve daha iyi bir yolu yoktur eminim. Bu UİView (superview) konur:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    if([super hitTest:point withEvent:event] == self) {
        for (id gesture in self.gestureRecognizers) {
            [gesture setEnabled:YES];
        }
        return self;
    }
    for (id gesture in self.gestureRecognizers) {
        [gesture setEnabled:NO];
    }
    return [self.subviews lastObject];
}

CEVAP
20 Temmuz 2012, Cuma


Subviews için dokunmatik olayları engelleme varsayılan davranıştır. Bu davranışı değiştirebilirsiniz:

    UITapGestureRecognizer *r = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(agentPickerTapped:)];
    r.cancelsTouchesInView = NO;
    [agentPicker addGestureRecognizer:r];

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010
  • TopOfTheTech

    TopOfTheTech

    5 NİSAN 2010