9

Sử dụng hoạt ảnh UIView sau với CATransform3DMakeRotation, một nửa UIView sẽ biến mất trong quá trình chuyển đổi và xuất hiện lại khi hoàn thành. Điều này chỉ xảy ra khi có một UIImageView phía sau UIView trong hệ thống phân cấp khung nhìn của trình tạo giao diện.CATransform3DMakeRotation ẩn một nửa UIView trong hoạt ảnh

[UIView animateWithDuration:1.0 delay:0.0 options:nil animations:^{ 
     myView.layer.transform = CATransform3DMakeRotation(M_PI,0.0,1.0,0.0); 
    } completion:nil]; 

Sau đây là cách bố trí xem trong xây dựng giao diện

Interface Builder layout

Và kết quả hình ảnh động dưới đây.

enter image description here

Hình ảnh thứ 2 là trước khi bất kỳ hình ảnh động đã diễn ra, nửa trái biến mất. Sau khi nó đã bị thu hẹp sau đó phát triển qua các điểm trung tâm phía bên phải (phía trước bên trái) xuất hiện lại như thể hiện trong hình ảnh thứ 4.

Khi hình nền được thiết lập sử dụng

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"jeans.png"]]; 

Các hình ảnh động hoàn thành như mong đợi.

+0

này cũng hoạt động tốt khi không có UIImageView phía sau. –

+0

Hãy giải thích những gì bạn đang cố gắng đạt được ... Từ những hình ảnh, tôi thấy rằng đây là một hành vi bình thường, vì bạn đang quay trên trục y – Mazyod

+0

Hình ảnh ở giữa bắt đầu và kết thúc hoạt ảnh, chẳng hạn ngay sau khi hoạt ảnh bắt đầu bên trái biến mất trước bất kỳ thay đổi nào về chiều rộng. Chỉ xuất hiện lại sau khi hoạt ảnh đã hoàn tất. Nếu điều đó làm cho nó rõ ràng hơn? –

Trả lời

23

Đối với hồ sơ, câu trả lời là trong nhận xét của tôi

imageView.layer.zPosition = -400; 

Hoặc bạn có thể làm

myView.layer.zPosition = 400; // or some number greater than width/2 

Dường như một phần của quan điểm xoay được occluded bởi quan điểm nền. Vì nó quay quanh điểm trung tâm của nó, một phần của nó đi vào không gian âm z, nên đằng sau hậu cảnh.

Vì vậy, từ

------- imageView 
------- myView 

để

/myView 
    /
------- imageView 
/
/
+0

Cảm ơn bạn đã giải thích. Bây giờ nó có ý nghĩa. Chúc mừng !! –

+0

Chính xác những gì tôi đang tìm kiếm. Cảm ơn bạn. – Yariv

+0

Cảm ơn, gợi ý tốt! – MacMark

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