remembersLastFocusedIndexPath
-
true: 会记住上一次被聚焦的位置。当聚焦即将更改为该UICollectionView时,将返回记住的位置。 -
false:当聚焦即将更改为该UICollectionView时,将通过代理indexPathForPreferredFocusedViewInCollectionView或preferredFocusEnvironments进行指定某个Cell被聚焦
restoresFocusAfterTransition
-
true:默认值,会保存上一次被聚焦的View对象。当UITableView或是UICollectionView的Cell点击跳转后返回,会自动聚焦到被保存的View。如果View被复用,则聚焦会错乱,就会看到聚焦到了其他位置,这时我们需要将其改为false,自己通过其他属性记住View的位置indexPath而不是View对象,然后在preferredFocusEnvironments中返回indexPath处的Cell或是在代理indexPathForPreferredFocusedView中返回indexPath。 -
false:不会保存上一次被聚焦的View并自动聚集到该View上,此时可以通过代理indexPathForPreferredFocusedView或是preferredFocusEnvironments进行指定
两者区别
前者记住的是位置,后者记住的是View对象。后者在UITableView、UICollectionView中,当Cell复用时将会出现聚焦错乱,最好是自己记录位置indexPath,在indexPathForPreferredFocusedView或是preferredFocusEnvironments中自己来决定。