Tôi có một lớp con UIView vẽ một vòng tròn có bán kính thay đổi (với hình động bouncy đẹp). Chế độ xem đang quyết định kích thước của vòng tròn.Animate intrinsicContentSize changes
Tôi muốn lớp con UIView này thay đổi kích thước khung hình của nó để khớp với các thay đổi động với bán kính vòng tròn và tôi muốn những thay đổi này sửa đổi bất kỳ NSLayoutConstraints nào được kết nối với chế độ xem (để chế độ xem bị ràng buộc với cạnh của vòng tròn sẽ di chuyển khi vòng tròn thay đổi kích thước).
Tôi hiểu rằng việc triển khai -(CGSize)intrinsicContentSize
và gọi invalidateIntrinsicContentSize
khi thay đổi bán kính sẽ cho biết các ràng buộc để cập nhật, nhưng tôi không thể tìm ra cách tạo hiệu ứng thay đổi cho intrinsicContentSize
.
Gọi invalidateIntrinsicContentSize
từ bên trong khối [UIView animateWith ... ngay lập tức cập nhật bố cục.
Điều này có thể thực hiện được và có cách tiếp cận giải pháp tốt hơn không?
Tôi có cảm giác rằng điều này là không thể. Lấy ví dụ về 'UILabel' của nó' intrinsicContentSize' là một hàm của kích thước phông chữ của nó. Tuy nhiên không có cách nào tốt đẹp để tạo hiệu ứng thay đổi phông chữ. Cách giải quyết cho nhãn là làm thay đổi biến đổi của lớp của nó (sử dụng 'CAAnimation') rồi thay đổi phông chữ sau khi hoạt ảnh hoàn tất - Không đẹp. – Robert