2011-11-05 28 views
6

Tôi cố gắng để animate giá trị alpha của một cái nhìn MapKit lớp phủ (đặc biệt là một MKCircleView) trong iOS 5 bằng cách sử dụng đoạn mã sau:ios MapKit MKOverlayView hoạt hình xảy ra ngay lập tức

-(void) animateCircle:(MKCircle*)circle onMap:(MKMapView*) mapView 
{ 
    MKCircleView * circleView = (MKCircleView*) [mapView viewForOverlay:circle]; 
    UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone; 
    [UIView animateWithDuration:5.0 
          delay:0.0 
         options:options 
        animations:^(void) { circleView.alpha = 0.9; } 
        completion:^(BOOL finished) {} 
    ];  
} 

Giá trị alpha của lớp phủ đang thay đổi như tôi muốn, nhưng nó nhảy ngay lập tức thay vì hoạt hình trong thời gian quy định.

Có ai có thể đề xuất điều gì có thể sai không? Có lẽ hoạt hình trên quan điểm lớp phủ os phức tạp hơn với các khối hơn tôi nghĩ.

Trả lời

0

Hoạt ảnh chính có hành vi thú vị khi hoạt ảnh đồng thời có hiệu lực cùng một chế độ xem ... Nếu bạn cố tạo hiệu ứng cho chế độ xem trước khi hoạt ảnh cuối cùng của chế độ xem kết thúc, nó sẽ giả sử bạn dự định hoạt ảnh tiếp theo bắt đầu từ trạng thái kết thúc mong muốn cái đầu tiên. Điều này có thể dẫn đến nhảy các khung cũng như nhảy các giá trị alpha.

Trong trường hợp của bạn, chế độ xem này có thể đang được hoạt ảnh bởi một thứ khác. Hãy thử xác định vị trí và loại bỏ các hình ảnh động/or'ing khác trong UIViewAnimationOptionBeginFromCurrentState đến các tùy chọn của nó.

Các vấn đề liên quan