Giải pháp đơn giản nhất là sử dụng hình ảnh động ngầm. Điều này sẽ xử lý tất cả những rắc rối đó cho bạn:
self.layer?.backgroundColor = NSColor.red.cgColor;
Nếu bạn muốn tùy chỉnh, ví dụ như thời lượng, bạn có thể sử dụng NSAnimationContext
:
NSAnimationContext.beginGrouping();
NSAnimationContext.current.duration = 0.5;
self.layer?.backgroundColor = NSColor.red.cgColor;
NSAnimationContext.endGrouping();
Lưu ý: Điều này chỉ được thử nghiệm trên macOS.
Tôi ban đầu không thấy bất kỳ hình ảnh động khi làm điều này. Vấn đề là lớp của lớp được hỗ trợ xem không ẩn ý. Để giải quyết vấn đề này, hãy đảm bảo bạn tự thêm một lớp (trước khi đặt chế độ xem thành lớp được hỗ trợ).
Một ví dụ làm thế nào để làm điều này sẽ là:
override func awakeFromNib() {
self.layer = CALayer();
//self.wantsLayer = true;
}
Việc sử dụng self.wantsLayer
không tạo ra bất kỳ sự khác biệt nào trong thử nghiệm của tôi, nhưng nó có thể có một số tác dụng phụ mà tôi không biết.
.presentation()
để có được giá trị "cuối cùng, nhìn thấy". Tìm kiếm các câu trả lời chính xác dưới đây để giải thích nó được thực hiện với lớp trình bày.