Tôi đang cố gắng tạo hoạt ảnh trong ứng dụng iOS của mình, nơi chế độ xem mới chiếu trên màn hình từ bên trái trong khi chế độ xem chính trượt sang phải để nhường chỗ cho nó. Chế độ xem chính là chế độ xem con của chế độ xem trên của trình điều khiển chế độ xem của tôi và chế độ xem bên trang trình bày được tải từ một tệp xib riêng biệt.Cố gắng tạo hiệu ứng đồng thời hai UIViews, chỉ một lần di chuyển
Trong trường hợp nó có liên quan, đây là mã của tôi cho tải giao diện bên, gọi là từ phương pháp viewDidLoad xem điều khiển chính của tôi:
sideViewController = [[SideViewController alloc] init];
[sideViewController loadView];
sideView = sideViewController.topView;
[self.view addSubview:sideView];
sideView.hidden = YES;
sideView.frame = CGRectMake(-200, 0, 200, 460);
Và đây là đoạn code mà được gọi để animate hai quan điểm:
sideView.hidden = NO;
[UIView animateWithDuration:0.25f
animations:^{
mainView.frame = CGRectMake(200, 0, 320, 460);
sideView.frame = CGRectMake(0, 0, 200, 460);
}];
Điều này dường như đủ đơn giản. Nhưng đối với một số lý do, chỉ có hoạt ảnh sideView - mainView không di chuyển bất cứ đâu. Và để làm cho mọi thứ trở nên khó hiểu hơn, nếu tôi nhận xét dòng trong khối hoạt hình di chuyển sideView, hoạt ảnh cho mainView bắt đầu hoạt động.
Có ai biết điều gì sai? Từ tất cả các tìm kiếm và tài liệu tôi đã đọc, những gì tôi đang làm phải hoạt động tốt. Những gì tôi nghĩ sẽ là một hoạt hình đơn giản đã biến thành những giờ thất vọng. Bất kì sự trợ giúp nào đều được đánh giá cao!
Chỉnh sửa:
Tắt đề xuất của Guo Luchuan Tôi đã thử làm động các đặc tính khác nhau của hai UIViews. Hầu hết đều có cùng một kết quả, mặc dù hoạt ảnh cả hai thuộc tính biến đổi của chúng đều là gần như hoạt động. Trong trường hợp đó cả hai UIViews hoạt hình, nhưng mainView chỉ làm điều sai: hoạt hình của nó bắt đầu với nó ở một vị trí khác và kết thúc ở vị trí sai. Dường như nó thực hiện các dịch Tôi hướng dẫn nó để làm, nhưng bắt đầu từ vị trí này thể hiện trong tính toán vector:
starting_point - 0.5 * total_translation
nghĩa là nó kết thúc vào:
starting_point + 0.5 * total_translation
Các Sideview, tuy nhiên, sinh động một cách chính xác.
Điều này thật đáng buồn. Tôi đã không nhận ra hình động hoạt hình trên iOS theo cách này đã bị hỏng. Điều tiếp theo tôi sẽ thử là sử dụng CABasicAnimation, mặc dù tôi không hài lòng nhưng tôi phải sử dụng API mức thấp như vậy cho một thứ đơn giản như vậy.
Tôi gặp sự cố tương tự và cũng đã bật tính năng autoLayout. Tắt nó đã không giúp tôi bất cứ điều gì không may .... mặc dù tôi có thể đã bỏ lỡ nơi bạn tắt nó trên toàn cầu (Tôi đang xây dựng màn hình của tôi với mã). Một giải pháp mà tôi tìm thấy là nhúng cả hai chế độ xem trong chế độ xem vùng chứa chính và chỉ tạo hiệu ứng đó. – avance