5

Tôi hiện đang đặt những điểm cuối cùng vào một dự án.Hoạt ảnh setHidden: trên NSView thông qua các ràng buộc Cocoa

Rất nhiều (nếu không phải tất cả) logic giao diện người dùng hiện dựa vào Bindings Cocoa. Một số thành phần giao diện người dùng (nhãn, nút, v.v.) có các liên kết "Ẩn" được xác định. Khi các sự kiện nhất định được kích hoạt, các khả năng hiển thị yếu tố này được bật.

Tôi đang cố gắng tạo hiệu ứng thay đổi mức hiển thị (bằng cách làm hiển thị độ mờ và thậm chí cả tỷ lệ). Điều này có thể dễ dàng được thực hiện bằng nhiều cách, bằng cách thiết lập các thuộc tính lớp có liên quan, thêm hoạt ảnh vào lớp, v.v. Tuy nhiên, vì tôi đang cố gắng hoàn toàn dựa vào hành vi ràng buộc tôi "không thể" thực sự làm điều này trực tiếp.

tôi đã cố gắng thực hiện một bằng lớp hành động, bằng cách định nghĩa các hành động cho các phím kCAOnOrderInkCAOnOrderOut trên các yếu tố có liên quan, nhưng nó thực sự không hiệu quả, như setHidden: là nhiều khả năng được kích hoạt trên NSView thay vì CALayer - - có ý nghĩa.

Vì vậy, câu hỏi của tôi là: làm cách nào bạn tạo ảnh động setHidden: trên NSView, khi setHidden: đang được gọi bởi Bindings Cocoa.

Cảm ơn bạn.

Trả lời

0

Bộ đặt độngHiển thị sẽ không có hiệu ứng hình ảnh vì nó bật hoặc tắt. Nếu bạn muốn hiển thị động, hãy sử dụng setAlpha (hoặc setOpacity trên layer) để thay thế. Các giá trị này có giá trị từ 0,0 đến 1,0. Nếu bạn cần cờ ẩn để được thiết lập vì lợi ích của thông tin tiểu bang, hãy gọi số -performSelector:withObject:afterDelay chuyển cho nó một bộ chọn đặt giá trị ẩn cho bất kỳ giá trị nào bạn cần để trở thành sau khi hoạt ảnh đã hoàn tất. Ngoài ra, bạn có thể thiết lập một đại biểu cho hoạt hình rõ ràng được gọi lại khi hoạt ảnh kết thúc và gọi setHidden sau đó.

+0

'setHidden: 'trên CALayer * là * animatable. Hành động mặc định cho các lệnh vào/ra thực sự sử dụng một CATransition gây ra các lớp opacity để tạo hiệu ứng động. – phluid

+0

Có. Ẩn là có thể hoạt hình theo nghĩa là bạn có thể thay đổi các giá trị, tuy nhiên, chỉ có hai giá trị có thể có. Hoạt ảnh chính nội suy ở giữa các giá trị. Với ẩn, đó là CÓ hoặc KHÔNG. Nhưng những gì nó âm thanh như bạn muốn nó làm là tự động kích hoạt một hình ảnh động mờ dần khi setHidden được gọi. Đúng không? Nếu vậy, tôi không nghĩ rằng bạn có thể làm điều đó chỉ với một ràng buộc. Có thể bạn sẽ phải viết mã. Bạn có thể cố gắng liên kết với thuộc tính alpha và đặt nó thành 0 hoặc 1. Có vẻ như có thể cung cấp cho bạn mong muốn bạn đang tìm kiếm, nhưng tôi không chắc chắn cách bạn kết nối mọi thứ. –

0

Tôi khuyên bạn nên xem NSViewAnimation. Phải mất bất kỳ NSView nào và có thể tạo hiệu ứng cho khung, kích thước hoặc khả năng hiển thị.

2

này sẽ mờ dần một NSView ...

[[someView animator] setAlphaValue:0.0f]; 
Các vấn đề liên quan