Tôi luôn nghĩ rằng Core Animation thực hiện hình động trên nền. Khi tôi chạy mã này, tương tác giao diện người dùng của tôi bị chặn cho đến khi kết thúc hoạt hình:Tại sao -animateWithDuration: delay: options: animations: completion: chặn giao diện người dùng?
[UIView animateWithDuration:4.5
delay:0
options:options
animations:^{
oldView.alpha = 0;
newView.alpha = 1;
}
completion:^(BOOL finished) {
if (finished) {
[oldView removeFromSuperview];
}
}];
Giống như bạn có thể thấy thời lượng dài vì vậy nó có thể nhìn thấy rõ ràng rằng sự tương tác giao diện người dùng bị chặn trong khi hiệu ứng động.
Tương tác giao diện người dùng bắt đầu bị chặn khi hoạt ảnh bắt đầu và kết thúc bị chặn khi hoạt ảnh kết thúc.
Có cách nào để bắt đầu hoạt ảnh UIView đồng thời để các tương tác giao diện người dùng không bị chặn không?
EDIT để làm rõ: Tôi biết rằng giao diện người dùng bị chặn vì tôi không thể tương tác với bất kỳ điều khiển trên màn hình tại sao hoạt hình này đang chạy. Những điều khiển khác không liên quan đến những gì đang được làm động và không nằm trên cùng một nhánh trong hệ thống phân cấp khung nhìn. Toàn bộ giao diện người dùng bị chặn khi hoạt ảnh này chạy. Khi tôi đặt nó thành 10 giây, giao diện người dùng bị chặn trong 10 giây trong khi hoạt ảnh chạy. Thử nghiệm với iOS 4.2 trên iPhone 4.
Làm thế nào để bạn biết nó bị chặn? Trừ khi chế độ xem có alpha là 0, tất cả các chế độ xem đằng sau chế độ xem có tương tác bị vô hiệu hóa. – CodaFi
Đã cập nhật câu hỏi bằng cách làm rõ. –