Tôi sử dụng tiêu chuẩn UICollectionView
với các phần. Các tế bào của tôi được bố trí như một lưới điện. Ô kế tiếp theo hướng được chọn sẽ được lấy nét chính xác nếu người dùng di chuyển tiêu điểm xung quanh bằng điều khiển từ xa của Apple TV. Nhưng nếu có một "khoảng trống" trong lưới, công cụ lấy nét mặc định sẽ nhảy qua các phần. Nó làm điều này để tập trung một tế bào có thể là một vài phần đi nhưng trong cùng một cột.Hành vi của công cụ tập trung tùy chỉnh cho UICollectionView
Ví dụ đơn giản: Có 3 phần. Phần đầu tiên có 3 ô. Cái thứ hai có 2 ô và ô cuối cùng có 3 ô. Xem hình ảnh sau:
Nếu ô màu xanh lá cây là tập trung và người dùng chạm vào hướng xuống, các tế bào màu vàng được tập trung và phần hai được bỏ qua bởi các công cụ tập trung.
Tôi muốn ép buộc rằng không có phần nào có thể bị nhảy qua. Vì vậy, thay vì tập trung các tế bào màu vàng tôi muốn tập trung các tế bào màu xanh.
Tôi biết rằng công cụ Apple TV Focus hoạt động bên trong như hệ thống lưới và hành vi được mô tả là hành vi mặc định. Để cho phép các chuyển động khác (ví dụ: đường chéo), chúng tôi cần trợ giúp công cụ lấy nét bằng cách đặt các số vô hình UIFocusGuide
s có thể chuyển hướng công cụ lấy nét đến preferredFocusedView
. Vì vậy, trong hình dưới đây có một hướng dẫn lấy nét màu đỏ vô hình được đặt vào không gian trống của phần UICollectionView
sẽ chuyển hướng tiêu điểm xuống đến ô màu xanh mong muốn. Tôi nghĩ rằng đó sẽ là giải pháp hoàn hảo, trong theorie.
Nhưng làm thế nào tôi sẽ thêm UIFocusGuide
s cho tất cả các khoảng trống của UICollectionView
phần? Tôi đã thử nhiều thứ nhưng không có gì hiệu quả. Có thể thêm nó như là một trang trí xem nhưng điều đó có vẻ sai. Hoặc là các ô bổ sung, nhưng điều đó phá vỡ lớp dữ liệu và các ràng buộc neo không hoạt động.
Có ai có ý tưởng về cách thêm UIFocusGuide
s vào số UICollectionView
không?
Cùng vấn đề với tôi. Bạn đã cố gắng ghi đè collectionView: canFocusItemAtIndexPath và trả về false cho ô màu vàng? –
Không, tôi không có. Nhưng tôi đoán rằng có thể tạo ra một chút lộn xộn, khiến cho các tế bào nên được tập trung. Tôi vẫn thích kỹ thuật 'UIFocusGuide'. Nhưng vẫn không biết làm thế nào để đạt được nó. Tôi cũng đã hỏi trong diễn đàn apple: https://forums.developer.apple.com/message/93020 Hãy thông báo cho tôi nếu bạn tìm thấy giải pháp. –