Khi người dùng thực hiện một số hành động, tôi cần kéo một số UICollectionView
từ dưới lên đến một độ cao nhất định. Vì trạng thái mới đó hoàn toàn không bắt buộc, chế độ xem bộ sưu tập được tạo ngay trước khi được trình bày theo cách đó. Hoạt ảnh từ dưới lên trên được thực hiện bằng các thay đổi đối với thuộc tính constant
của NSLayoutConstraint và gọi tới [view layoutIfNeeded]
trong một số khối hoạt ảnh.Ngăn hiển thị hoạt ảnh UICollectionViewCell khi trình bày UICollectionView
Vấn đề là, làm những việc theo cách đó làm cho các tế bào xuất hiện theo một cách không mong muốn: chúng mở rộng từ góc trên cùng bên trái đến kích thước được chỉ định của chúng. Tôi muốn chế độ xem bộ sưu tập xuất hiện và có tất cả các ô đã được đặt ra ở kích thước và hình thức cuối cùng của chúng.
Tôi biết những thứ như phương pháp của UIView setAnimationEnabled:
, nhưng tôi không thể tìm thấy cách thức và nơi tôi nên sử dụng (nếu đó là cách để đi).
Tôi đoán sự cố là do các ô xem bộ sưu tập đang được thêm vào phân cấp chế độ xem ngay trước khối hình động có chứa lệnh gọi tới [superview layoutIfNeeded]
. Điều này có thể dẫn UIKit nghĩ rằng nó cũng sẽ animate những thay đổi đó đối với bố cục. Nếu đó là trường hợp giải pháp có thể là một cái gì đó dọc theo cách loại trừ khỏi hoạt ảnh, những thay đổi cụ thể đối với phân cấp khung nhìn.
Chạy vào một số lỗi tương tự trong ứng dụng của tôi - cho ví dụ, khi tôi khởi động nó trong chế độ giả lập, toàn bộ màn hình của ứng dụng mở rộng ra ngoài từ góc trên bên trái và một số đoạn văn bản nhất định đôi khi "nhảy" lên góc trái của người giám sát của họ và sau đó biến đổi thành vị trí. Tương tự như vậy tôi làm một số hình ảnh động với những hạn chế trong các phần khác nhau của ứng dụng của tôi. Sẽ đánh giá cao một câu trả lời cho câu hỏi này :) –