2010-11-03 26 views
5

Tôi có một số mã làm rung chuyển UIViews, giống như khi bạn chỉnh sửa màn hình chính trên iOS của mình.iOS 4.2 Block Animation -> Tại sao tôi nhận được những cảnh báo sau: - [UIApplication beginIgnoringInteractionEvents] tràn. Bỏ qua

Tôi có 2 phương pháp sau đây để đạt được hiệu ứng này dao động:

- (void)wobble { 
int amountInRadians = (self.tag % 2) == 0 ? 2.0 : -2.0; 
containerView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-amountInRadians)); 

[UIView animateWithDuration:0.10 
     delay:0.0 
     options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) 
     animations:^ { 
     containerView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(amountInRadians)); 
     } 
     completion:NULL 
]; 
} 

- (void)stopWobble { 
[UIView animateWithDuration:0.01 
     delay:0.0 
     options:(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveLinear) 
     animations:^ { 
     containerView.transform = CGAffineTransformIdentity; 
     } 
     completion:NULL 
    ]; 
} 

Khi tôi khỏi khập khiểng, tôi nhận được cảnh báo (nhiều lần):

- [UIApplication beginIgnoringInteractionEvents] tràn . Bỏ qua.

sau đó (nhiều lần, phù hợp với số lượng bắt đầu những):

- [UIApplication endIgnoringInteractionEvents] gọi mà không phù hợp với -beginIgnoringInteractionEvents. Bỏ qua.

Điều gì đang diễn ra trên trái đất? Nếu tôi nhận xét hoạt hình stopWobble, nó ổn, nhưng tự nhiên hoạt ảnh của tôi không dừng lại. Nếu tôi xóa tùy chọn "UIViewAnimationOptionAllowUserInteraction" khi tôi bắt đầu hoạt ảnh, tôi nhận được cảnh báo beginIgnoringInteractionEvents, nhưng điều này cũng không tốt vì tôi cần tương tác với các chế độ xem này trong khi chúng lắc lư.

Hành vi hoạt động tốt, vậy tôi có nên bỏ qua điều này không? Dường như với tôi như một cái gì đó tôi nên sửa chữa, nếu chỉ tôi có thể tìm ra nguyên nhân gây ra nó.

Trả lời

11

Thử thêm UIViewAnimationOptionAllowUserInteraction to stopWobble. Tôi đã nhận được thông báo lỗi trước đó và nó có vẻ như phải làm với hai hình ảnh động cố gắng để thực hiện đồng thời khi họ không rõ ràng thiết lập để làm như vậy. Thêm UIViewAnimationOptionAllowUserInteraction vào hoạt ảnh thứ hai của tôi đã khắc phục sự cố này cho tôi.

+0

Thêm tùy chọn này thực sự dừng đầu ra của các cảnh báo này. Bây giờ chúng tôi cần một chuyên gia để giải thích chi tiết. :) –

+0

Đúng là đã sửa nó. Cảm ơn Eric! –

+0

Tôi dường như không thể loại bỏ các tin nhắn này. Có ai có ý tưởng gì và khi nào họ được gọi? –

0

Tôi đoán điều đó xảy ra khi bạn có quá nhiều lượt xem sẽ hoạt ảnh cùng một lúc, như một mạng lưới chế độ xem tùy chỉnh trong chế độ xemDidAppear.

a. Trong iOS4, tất cả chúng đều cố gắng vô hiệu hóa các tương tác UIApplication cùng một lúc và để tránh các vấn đề tràn ngập UIApplication và bỏ qua một số trong số chúng.

b. Sau khi làm động tất cả các khung nhìn, hãy nói lại UIApplication để kích hoạt các tương tác nhưng UIApplication không nhận ra một số lời gọi cho phép khi chúng bị bỏ qua trong (a).

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