2015-11-24 18 views
5

Mã của tôi là dưới đây, nhưng các hình ảnh động chỉ xảy ra ngay lập tức ví dụ quan điểm là không còn có thể nhìn thấy:Issue hiệu ứng động với CATransform3DRotate

UIView *leftDoorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width /2, self.view.bounds.size.height)];  
leftDoorView.backgroundColor = [UIColor greenColor]; 
leftDoorView.layer.anchorPoint = CGPointMake(0.0, 0.5); 
[self.view addSubview:leftDoorView]; 

leftDoorView.center = CGPointMake(0.0, self.view.bounds.size.height/2.0); //compensate for anchor offset 

CATransform3D transform = CATransform3DIdentity; 
transform.m34 = -1.0f/500.0; 
transform = CATransform3DRotate(transform, M_PI_2, 0, 1, 0); 

[UIView animateWithDuration:1.0 animations:^{ 

     leftDoorView.layer.transform = transform; 
}]; 

Không chắc những gì tôi đang làm sai - bất kỳ trợ giúp sẽ được đánh giá cao xin vui lòng.

+1

Tôi vừa sao chép mã của bạn vào chế độ xemDidAppear: của một ứng dụng và nó hiển thị hình động một cách chính xác. –

Trả lời

3

Vấn đề hóa ra là zPositions của các lớp của các chế độ xem khác - rất có thể là do UITableView trong phân cấp chế độ xem.

Thiết lập là UIViewController có thêm UIImageView tiêu đề và UITableView vào chế độ xem riêng trong viewDidLoad. Các hình ảnh động sau đó được thêm cuối cùng để được trên đầu trang của các quan điểm khác. Có vẻ như UITableView bằng cách nào đó thay đổi zPositions của các lớp, vì vậy chỉ sau khi cuối cùng cố gắng leftdoorView.layer.zPosition = 1000; và di chuyển hình động thực tế đến một bộ chọn riêng được thực hiện 0,2 giây sau khi viewDidLoad đã làm hoạt hình hiển thị đúng cách.