我是新来的。当我选择一个带有selectItemAtIndexPath:animated:scrollPosition:的单元格时,不会被调用。所以我在didSelectItemAtIndexPath:中把它们叫做,最终的效果是一样的。
他们之间有什么区别?
发布于 2015-08-24 10:17:44
您提到的第一个方法(selectItemAtIndexPath:animated:scrollPosition:)实际上在提供的indexPath中选择项。或者,它也可以滚动到它。
您提到的第二个方法(scrollToItemAtIndexPath:atScrollPosition:animated:)只滚动集合视图,直到指定的项可见为止。它没有选择它。
在您的例子中,如果我理解正确的话,您将描述一个项目已经被选中的场景(didSelectItemAtIndexPath:),所以如果您想确保该项是可见的,只需要调用第二个方法(不需要再次选择它)。或者,您可以将原始方法(selectItemAtIndexPath:animated:scrollPosition:)替换为selectItemAtIndexPath:animated:scrollPosition:来选择单元格(但是,请注意,根据规范,正如对原始问题的注释中提到的,“此方法不会导致调用任何与选择相关的委托方法”,因此您将不会接收到didSelectItemAtIndexPath:调用。
https://stackoverflow.com/questions/32178322
复制相似问题