tvOS 聚焦

remembersLastFocusedIndexPath

  1. true: 会记住上一次被聚焦的位置。当聚焦即将更改为该UICollectionView时,将返回记住的位置。
  2. false:当聚焦即将更改为该UICollectionView时,将通过代理indexPathForPreferredFocusedViewInCollectionViewpreferredFocusEnvironments进行指定某个Cell被聚焦

restoresFocusAfterTransition

  1. true:默认值,会保存上一次被聚焦的View对象。当UITableView或是UICollectionViewCell点击跳转后返回,会自动聚焦到被保存的View。如果View被复用,则聚焦会错乱,就会看到聚焦到了其他位置,这时我们需要将其改为false,自己通过其他属性记住View的位置indexPath而不是View对象,然后在preferredFocusEnvironments中返回indexPath处的Cell或是在代理indexPathForPreferredFocusedView中返回indexPath
  2. false:不会保存上一次被聚焦的View并自动聚集到该View上,此时可以通过代理indexPathForPreferredFocusedView或是preferredFocusEnvironments进行指定

两者区别

前者记住的是位置,后者记住的是View对象。后者在UITableViewUICollectionView中,当Cell复用时将会出现聚焦错乱,最好是自己记录位置indexPath,在indexPathForPreferredFocusedView或是preferredFocusEnvironments中自己来决定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容