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中自己来决定。

你可能感兴趣的:(tvOS 聚焦)