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