selectItemAtIndexPath:animated:scrollPosition:和scrollToItemAtIndexPath:atScrollPosition:animated:

时间:2015-08-24 09:04:15

标签: ios objective-c

我是Obj-C的新手。当我选择selectItemAtIndexPath:animated:scrollPosition:的单元格时,不会被调用。所以我在didSelectItemAtIndexPath:中称呼它们,最后的效果是一样的。

它们之间的区别是什么?

1 个答案:

答案 0 :(得分:0)

您提到的第一种方法(selectItemAtIndexPath:animated:scrollPosition:)实际上选择了提供的indexPath处的项目。或者,它也可以滚动到它。

您提到的第二种方法(scrollToItemAtIndexPath:atScrollPosition:animated:)仅滚动集合视图,直到指定的项目可见。它没有选择它。

在您的情况下,如果我理解正确,您正在描述已经选择了一个项目的场景(didSelectItemAtIndexPath:),所以如果您想确保这样做,您只需要调用第二个方法该项目可见(不需要再次选择)。或者,您可以将原始方法(selectItemAtIndexPath:animated:scrollPosition:)替换为selectItemAtIndexPath:animated:scrollPosition:以选择单元格(但请注意,根据规范,如原始问题的评论中所述,“此方法不会导致任何与选择相关的委托方法被调用“,因此您将不会收到didSelectItemAtIndexPath:电话。