2011-11-21 8 views
1

간단한 작업 : UILabel을 페이드 아웃 (알파 = 0.0)하고, 텍스트를 변경하고, 페이드 인하 (알파 = 1.0f) 및 이 모든 것들은 움직입니다. 나는 페이드 아웃이 움직이지 않는다는 것을 알았고 나는 작은 테스트 어플리케이션을 만들었다.페이드 아웃 UILabel 아웃, 텍스트 변경, 페이드 인 : 애니메이션 만 페이드 인합니다.

나는 그것을 실행하면 버튼을 누르면 라벨이 즉시 사라지고 다시 페이드 아웃되는 것을 볼 수 있습니다. 왜 페이드 아웃은 무시됩니까? 나는 SO를 찾았고 정확하게 그것을 사용하고있는 것처럼 코드를 발견했습니다.

여기에 무슨 문제가 있습니까? 나눠야하나요? 페이드 아웃 애니메이션이 끝나면 다시 페이드 아웃하는 애니메이션을 만드시겠습니까?

UIButton btn = UIButton.FromType(UIButtonType.RoundedRect); 
btn.Frame = new RectangleF(40, 40, 100, 30); 

window.AddSubview(btn); 

UILabel lbl = new UILabel(new RectangleF(100, 100, 100, 30)); 
lbl.Text = "A label"; 
window.AddSubview(lbl); 
window.MakeKeyAndVisible(); 

btn.TouchUpInside += delegate { 
    UIView.Animate(1.0f, delegate { 
     lbl.Alpha = 0.0f; 
     lbl.Alpha = 1.0f; 
    }, null); 
}; 

답변

2

같은 속성을 두 번 움직일 수는 없다고 생각합니다. 이보다 복잡한 애니메이션을 허용하는 다른, 고급, API는하지만 난 당신이 가짜 수 있다고 생각 쉽게 사용이 하나 단순히 완료 액션 내부 애니메이션의 두 번째 부분을 수행하고 1.0을 분할

btn.TouchUpInside += delegate { 
    UIView.Animate (0.5f, delegate { 
     lbl.Alpha = 0.0f; 
    }, delegate { 
     UIView.Animate (0.5f, delegate { 
      lbl.Alpha = 1.0f; 
     }); 
    }); 
}; 

2시 2 분. YMMV

+0

내가 찾은 모든 샘플이 내가 시도한 것을 정확하게 제안한다는 것은 흥미 롭다. 아무도 실제로는 효과가 없다는 것을 신경 쓰지 않는다. :-) – Krumelur

+0

그들이 Xamarin의 웹 사이트에 있다면, 나에게 그들을 가리켜주세요 :-) – poupou

+0

Nono, all ObjC. 하지만 여전히. – Krumelur

관련 문제