6

tôi đang làm việc trên một dự án mà cần phải:Đối phó với IKImageBrowserView lớp hậu thuẫn, Z-trật tự và mối quan tâm khác

  • có một hình ảnh động chuyển đổi từ một cái nhìn có chứa một IKImageBrowserView để xem người khác;
  • có lớp phủ di chuột trên mỗi IKImageBrowserCell khi chuột di chuyển trên màn hình; và
  • có một NSView chồng lên nhau một phần của trình duyệt hình ảnh

Những vấn đề tôi đang gặp như sau:

  • Các IKImageBrowserView không tôn trọng z-trật tự nếu nó không được lớp -backed -> IKImageBrowserView vẫn ở trên đầu bất kể ngay cả khi một khung nhìn ở trên đỉnh của nó (hoặc trong đó là vấn đề)
  • Nếu chế độ xem trình duyệt hình ảnh được hỗ trợ lớp, vấn đề thứ tự z được giải quyết nhưng hành vi tùy chỉnh trong các ngắt IKImageBrowserView (ví dụ: máy chủ) -> Trong Mac 10.7 cho exampl e, lớp chọn và lớp nền trước của ô trình duyệt không di chuyển cùng với hình ảnh trong vùng "thư bị trả lại" của chế độ xem cuộn.

Tôi cần hỗ trợ lớp để thực hiện hoạt ảnh chuyển tiếp.

Vì lý do hiệu suất, tôi biết rằng Apple không khuyên các lượt xem anh chị em chồng lên nhau. Có những trường hợp mặc dù điều này không thể tránh được.

Tôi đã gửi một sự cố hỗ trợ kỹ thuật cho Apple về việc này. Họ đã báo cáo cho các kỹ sư nhưng họ cũng khuyên tôi gửi báo cáo lỗi.

Có ai đã từng tham gia điều này trước đây và nếu bạn đã sử dụng cách giải quyết nào?


Đối với bất kỳ ai tò mò, dự án mẫu ở đây https://github.com/jdbenito/nerdery. Trong ủy nhiệm ứng dụng, hãy thử nhận xét/bỏ ghi chú dòng -setWantsLayer:.

IKImageBrowserView bắt đầu hiển thị các hành vi lạ khi được hỗ trợ lớp. Và các triệu chứng khác nhau tùy thuộc vào hệ điều hành (ví dụ: Trong Mac OS 10.6, các dao động hoạt động cho đến khi bạn chuyển sang tab khác và quay trở lại IKImageBrowserView. Trong Mac OS 10.8, các lớp di chuột dường như không thể hiển thị trong ô chính xác) .

+0

Chúng tôi đang gặp sự cố tương tự. Chưa tìm thấy giải pháp nào. Bất kỳ tin tức từ phía bạn? – Raffael

+0

Tôi đã có một trải nghiệm khó chịu với IKImageBrowserView và sẽ không bao giờ cố gắng sử dụng lại nó.Chi tiêu tuần để tùy biến nó đã kết thúc với sự hiểu biết rằng một số điều đơn giản chỉ là không thể thực hiện. Vì vậy, tôi đã tạo lớp kiểm soát được lưu trữ của riêng mình trong 3 ngày và bây giờ có thể sửa đổi nó để phù hợp với mọi nhu cầu của tôi. – UJey

Trả lời

0

Bạn trai của NSView chắc chắn được phép chồng lên nhau. Tôi đã có câu hỏi tương tự cách đây một thời gian và đã nhận được xác nhận từ một số kỹ sư của Apple: Are layer-backed NSView siblings allowed to overlap?

Giới thiệu về IKImageBrowserView: Tôi đang ấn tượng rằng nó ít nhiều được dùng để làm "hộp đen", giống như một UITableView trên iOS: bạn có thể tùy chỉnh các tế bào và một số hành vi, nhưng bạn tốt hơn không gây rối với hệ thống phân cấp khung nhìn bên trong của nó bằng cách thêm trực tiếp các phần phụ vào nó. Nếu bạn cần bất cứ điều gì ngoài hành vi chuẩn, tài liệu, bạn có thể tốt hơn bằng cách viết giải pháp của riêng bạn. Nó không phải là quá khó để làm, đặc biệt là bởi vì bạn có quyền truy cập vào hình ảnh I/O cho tất cả các hình thu nhỏ và xem trước nhu cầu của bạn: https://developer.apple.com/library/mac/documentation/graphicsimaging/Conceptual/ImageIOGuide/imageio_source/ikpg_source.html#//apple_ref/doc/uid/TP40005462-CH218-SW3

Hy vọng điều này sẽ giúp!

Các vấn đề liên quan