我是Obj-C的新手。当我选择selectItemAtIndexPath:animated:scrollPosition:
的单元格时,不会被调用。所以我在didSelectItemAtIndexPath:
中称呼它们,最后的效果是一样的。
它们之间的区别是什么?
答案 0 :(得分:0)
您提到的第一种方法(selectItemAtIndexPath:animated:scrollPosition:
)实际上选择了提供的indexPath处的项目。或者,它也可以滚动到它。
您提到的第二种方法(scrollToItemAtIndexPath:atScrollPosition:animated:
)仅滚动集合视图,直到指定的项目可见。它没有选择它。
在您的情况下,如果我理解正确,您正在描述已经选择了一个项目的场景(didSelectItemAtIndexPath:
),所以如果您想确保这样做,您只需要调用第二个方法该项目可见(不需要再次选择)。或者,您可以将原始方法(selectItemAtIndexPath:animated:scrollPosition:
)替换为selectItemAtIndexPath:animated:scrollPosition:
以选择单元格(但请注意,根据规范,如原始问题的评论中所述,“此方法不会导致任何与选择相关的委托方法被调用“,因此您将不会收到didSelectItemAtIndexPath:
电话。