2014-04-28 3 views
1

다음 코드를 사용하여 UIButton을 눌렀을 때 일부 요소에 애니메이션을 적용하지만 애니메이션이 완료 될 때 UIView.Animate 완료 콜백이 호출되지 않습니다.MonoTouch - UIView.Animate 완료 콜백이 button 내부에서 호출되지 않습니다. touchUpInside 대리자

UIView.Animate 블록을 touchUpInside 대리자 외부로 이동하면 애니메이션 완료 콜백이 실행됩니다. 내가 뭔가 잘못하고 있는거야?

 close_loginemail.TouchUpInside += delegate(object sender, EventArgs e) { 

      //Animate first_screen_view and second_screen_view left 
      UIView.Animate (0.3, 0, UIViewAnimationOptions.CurveEaseInOut,() => { 
       login_email_view.Alpha = 0.0f; 
       login_blur.BlurRadius = 0f; 
      }, //Completion callback 
      () => { 
       Console.WriteLine ("test"); 
       login_email_view.Frame = new RectangleF (View.Frame.Width, 0, View.Frame.Width, View.Frame.Height); 
       if (loginemail_field.IsFirstResponder) { 
        loginemail_field.ResignFirstResponder(); 
       } 

       if (loginpassword_field.IsFirstResponder) { 
        loginpassword_field.ResignFirstResponder(); 
       } 
      }); 


     }; 

답변

1

문제가 무엇인지 알아 냈습니다. Obj-C 라이브러리 인 FXBlurView에 대한 바인딩을 사용하고 있습니다. UIView 애니메이션 완성 콜백이 호출되지 않아서 사용하고있는 라이브러리 버전에 버그가있었습니다. 라이브러리의 1.6.1 버전에서 수정되었습니다. 여기에서 찾을 수 있습니다 : https://github.com/nicklockwood/FXBlurView

관련 문제