gpt4 book ai didi

uicollectionview - 使 UICollectionView 的第一个单元格专注于 tvOS

转载 作者:行者123 更新时间:2023-12-04 14:25:48 29 4
gpt4 key购买 nike

好的,如果我有 UIViewController如果我使用这个 `preferredFocusedView ,我可以制作一个专注于 tvOS 的 View ,但是如何让 UICollectionView 的第一个单元格成为焦点?我怎么做?

我试图创建一个 UICollectionViewCell子类并拥有方法

- (UIView *)preferredFocusedView {
return ([self ifThisIsTheFirstCell]) ? self : nil;
}

没有成功。

有没有办法做到这一点?

最佳答案

“首选焦点”在概念上的工作方式是有一个对象“链”,从应用程序的窗口开始,向下通过 View Controller 和 View ,直到链在可聚焦 View 处结束。最后那个 View 会在你的应用程序启动时获得焦点,或者如果焦点需要重置(例如,如果当前聚焦的 View 从 View 层次结构中移除,UIKit 将需要选择另一个 View 来成为焦点) . preferredFocusedView方法是您定义链的方式。

例如,UIWindow工具preferredFocusedView返回 rootViewController 的首选聚焦 View .概括地说,t 正在做这样的事情:

- (UIView *)preferredFocusedView {
return [self.rootViewController preferredFocusedView];
}
UIViewController工具 preferredFocusedView返回它的 view属性(property)。 UIView只是返回自己。

然而, UICollectionView工具 preferredFocusedView不同的是:在最简单的情况下,它返回第一个单元格。所以你想要的那部分已经为你完成了。如果焦点没有移动到集合中的第一个单元格,那么“链”中更高的部分就是问题所在。

如果您的 View Controller 的集合 View 不是 view View Controller 的属性,那么您需要自己将焦点链引导到集合:
// in your view controller:
- (UIView *)preferredFocusedView {
return myCollectionView;
}

从那里,集合 View 将把链引导到特定的单元格。

关于uicollectionview - 使 UICollectionView 的第一个单元格专注于 tvOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33842812/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com