Spa*_*Dog 6 uicollectionview uicollectionviewcell tvos
好的,如果我有一个,UIViewController我可以使用这个`preferredFocusedView来关注tvOS,但是如何使UICollectionView的第一个单元格聚焦?我怎么做?
我试图创建一个UICollectionViewCell子类并拥有该方法
- (UIView *)preferredFocusedView {
return ([self ifThisIsTheFirstCell]) ? self : nil;
}
Run Code Online (Sandbox Code Playgroud)
没有成功.
有没有办法做到这一点?
"首选焦点"在概念上起作用的方式是,在应用程序窗口开始有一个"链"对象,通过视图控制器和视图向下,直到链在可聚焦视图结束.最后的视图是在您的应用程序启动时会集中注意力,或者如果需要重置焦点(例如,如果从视图层次结构中删除当前关注的视图,则UIKit将需要选择另一个视图以成为焦点) .该preferredFocusedView方法是如何定义的链.
例如,UIWindowimplements preferredFocusedView返回首选的焦点视图rootViewController.在摘要中,t做的是这样的:
- (UIView *)preferredFocusedView {
return [self.rootViewController preferredFocusedView];
}
Run Code Online (Sandbox Code Playgroud)
UIViewController实现preferredFocusedView返回它的view属性.UIView只是回归自己.
但是,UICollectionView实现方式preferredFocusedView不同:在最简单的情况下,它返回第一个单元格.所以你想要的部分已经为你完成了.如果焦点没有移动到集合中的第一个单元格,那么"链"中更高的位置就是问题所在.
如果视图控制器的集合视图不是视图控制器的view属性,那么您需要自己引导焦点链到集合:
// in your view controller:
- (UIView *)preferredFocusedView {
return myCollectionView;
}
Run Code Online (Sandbox Code Playgroud)
从那里,集合视图将引导链到特定单元格.
| 归档时间: |
|
| 查看次数: |
3738 次 |
| 最近记录: |