Tôi gặp sự cố khi Lion giới thiệu cuộn đàn hồi (hình bên dưới). Khi bạn cuộn chế độ xem bảng của mình (dựa trên ô, với các màu hàng xen kẽ) ngoài giới hạn của nó, nền không vẽ. Tôi đã thử làm bản vẽ của riêng tôi trong -[drawBackgroundInClipRect:]
, nhưng có vẻ như bạn không thể vượt quá giới hạn của chế độ xem bảng. Làm thế nào tôi có thể mở rộng nền thành lãnh thổ cuộn đàn hồi?Vẽ hình nền của NSTableView bên ngoài giới hạn của nó
Trả lời
Trong trả lời câu hỏi của bạn
Một cái nhìn vẽ bên ngoài giới hạn của nó thường là một không-không. Khi sử dụng các màu nền thay thế, NSTableView sẽ vẽ trực tiếp nền của nó. Nhưng trong chế độ xem bảng dựa trên chế độ xem, NSTableRowView được sử dụng và nếu nó có màu nền riêng, điều này thậm chí còn đặt ra nhiều thách thức hơn.
Các Bad News
Các tập hợp của NSScrollView (và các bộ phận khác nhau của nó), NSTableView, và NSTableHeaderView rất phức tạp ngày của riêng mình. Khi bạn ném chức năng dựa trên chế độ xem vào danh sách kết hợp (mỗi hàng có chế độ xem và mỗi ô có chế độ xem riêng và mỗi ô được sử dụng lại, hoạt ảnh xung quanh, v.v.), ghi đè hành vi này "không có cách nào để trải qua cuộc sống, con trai ! " ;-)
The Good Tin tức
Vấn đề xen kẽ màu nền không mở rộng theo xem bảng cuộn đàn hồi căng đã được giải quyết (ít nhất là trên 10.10, rằng tôi có thể nói), vì vậy đây không còn là vấn đề trừ khi bạn có chế độ xem hàng/ô với nền tùy chỉnh hoặc chỉ màu nền.
Một giải pháp chung cho tài liệu Custom (cuộn) Xem
Đối với tất cả quan điểm cuộn khác với nền cai trị bạn muốn kéo dài di chuyển đàn hồi, bạn sẽ cần một tùy chỉnh NSScrollView lớp con mà hy vọng một cái nhìn tài liệu (chế độ xem cuộn tùy chỉnh của bạn) để phù hợp với giao thức mà bạn xác định (như -(NSImage *)backgroundImageForClipViewBounds:
). Chế độ xem cuộn sẽ quan sát chế độ xem nội dung của nó (NSClipView) cho các số giới hạn thay đổi thông báo và tự gắn cờ để hiển thị. Khi chế độ xem -drawRect:
của chế độ xem cuộn, sau đó nó sẽ yêu cầu chế độ xem cuộn cho số -backgroundImageForClipViewBounds:
(thông qua giao thức của bạn) và vẽ nó vào chính nó, do đó làm cho "nền vô hạn" của chế độ xem được cuộn của chính nó.
Tôi chưa thử nghiệm lý thuyết này nhưng tôi tin rằng nó sẽ hoạt động. Tôi hi vọng cái này giúp được.
- 1. Tôi có thể vẽ ra ngoài giới hạn của một Canvas Android
- 2. Trên iOS, drawRect không thể vẽ ra ngoài giới hạn của khung nhìn?
- 3. Đặt một hình ảnh bên ngoài vùng chứa của nó
- 4. Lặp lại nền giới hạn CSS (nhiều hình nền)
- 5. Giới hạn cài đặt APK bên ngoài Google Store
- 6. Subview hiển thị bên ngoài giới hạn của phụ huynh UIView
- 7. Nhận hộp giới hạn của thành phố
- 8. Chỉ vẽ các ranh giới của stat_smooth trong ggplot2
- 9. Hình nền có thể mở rộng ra ngoài biên giới của div không?
- 10. Vẽ hình chữ nhật trên picturebox - cách giới hạn diện tích hình chữ nhật?
- 11. thay đổi giới hạn tài sản của UIView không ảnh hưởng đến nội dung của nó
- 12. UIView vẽ bóng vượt ra ngoài khung hình của khung hình
- 13. Có các thuật toán để tính toán các ranh giới giới hạn của sprites được vẽ trên nền đơn sắc không?
- 14. chỉ đặt giới hạn dưới của giới hạn cho ggplot
- 15. Giới hạn của API Wikipedia
- 16. Các giới hạn của MySQL
- 17. giới hạn random.shuffle Python của
- 18. Đặt hình nền bên ngoài đường viền chứa div
- 19. giới hạn của PhoneGap: Xây dựng
- 20. C# string split - index ngoài giới hạn
- 21. Thực thi mã nguồn Java bên ngoài trên bảo mật và tài nguyên giới hạn của máy chủ?
- 22. Không thể có được một CALayer để cập nhật drawLayer của nó: DURING một giới hạn hoạt hình
- 23. Các giới hạn của GROUP BY
- 24. Làm thế nào để NSView không cắt khu vực giới hạn của nó?
- 25. Chỉ mục ArrayList ngoài giới hạn
- 26. NSArray ngoài giới hạn kiểm tra
- 27. Thêm một biên giới bên ngoài của một UIView (thay vì bên trong)
- 28. Lấy các giới hạn của một MKMapView
- 29. Giới hạn của NSView so với khung
- 30. Hộp giới hạn 2D của một ngành?
Đó là NSScrollView chứa đang vẽ bản vẽ trong khu vực này. Có lẽ bạn có thể tạo mẫu cho các hàng xen kẽ và đặt màu đó làm màu nền trong chế độ xem cuộn? – Aderstedt
Đây có phải là sự cố không? Tôi không thể tạo lại hiệu ứng này trong OS X 10.9. – jemmons
@jemmons Không chắc tôi sẽ cập nhật khi tôi đang ở Mavericks. – Dov