سؤال

هذا جعلني صامت تماما!

لدي معرفات التعرف على إيماءة الصنبور لقوائم العرض/إخفاء ...

لدي أيضًا معرف إيماءة التمرير للضرب اليسار واليمين بين الشاشات ...

بعد ذلك ، لدي أيضًا mpmovieplayerController لتشغيل الفيديو مرة أخرى على الشاشة.

أنا تنفذ gestureRecognizer:shouldReceiveTouch: واستبعاد جميع uicontrols وأي شيء لديه البادئة "MP".

المشكلة هي ، كلما قمت بتمرير اليسار واليمين على عناصر التحكم في مشغل الفيلم ، shouldReceiveTouch يلاحظ فقط معرف إيماءات الصنبور ، وليس التمرير. كما أنه لا يتتبع بشكل صحيح ، ومع ذلك لا يزال يؤدي إلى طريقة التمرير.

لقد حاولت النظر في gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer لكن هذا مجرد خلطني حقًا ، لأنه يحتوي أيضًا على uipangesturerecognizer ... من أين جاء ذلك؟

الرجاء المساعدة ، أنا متعب ولدي موعد نهائي كبير ... ولا يمكنني عمله :(

شكرا لكم جميعا!

: جو

هل كانت مفيدة؟

المحلول 2

حسنًا ، يجب أن أعتذر ... السبب في عدم تلقيه shouldReceiveTouch كانت الرسائل لأنني لم أكن أقوم بتعيين مندوبها !! يا له من numpty. كنت أقوم بتعيين المندوب لإيماءة الصنبور ، ولكن ليس التمرير. الآن كل شيء يعمل بشكل جيد.

آسف! :-)

نصائح أخرى

كنت نفس المشكلة. إليك ما فعلته للتغلب على المشكلة. في الأساليب [Self Dosomething ...] أقوم ببعض الرسوم المتحركة وإذا انتهى الرسوم المتحركة ، فإنها تحدد الحالة الممكّنة للاعتراف مرة أخرى إلى نعم. كن على دراية بالحقيقة ، أنك تعيد التعرف الصحيح على تمكين! (هنا يجب علي (يسار/يمين) ، وبالتالي فإن مجموعة GesturerEcognizers لديها إدخالان.

- (void)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded && recognizer.enabled) {
        recognizer.enabled = NO;
        if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
        {
            [self doSomethingInteresting];
        }
        else {
            [self doSomethingElseInteresting];
        }
    }
}
[UIView transitionWithView:self.containerView
          duration:kAnimationDuration
            options:UIViewAnimationOptionTransitionCurlDown
         animations:^{ your animations }
         completion:^(BOOL finished) {
                if (self.containerView.gestureRecognizers.count) {
             ((UISwipeGestureRecognizer *)[self.containerView.gestureRecognizers objectAtIndex:0]).enabled = YES;
} }];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top