我们有一个集合视图。我做了一个日历,它水平显示日期,我水平滚动日期。现在在屏幕上我只看到3-4个日期。现在我想自动滚动到一个特定的选定日期时,日历屏幕我显示。所以我想滚动到的日期是不可见的。
为此,我得到了特定单元格的索引路径。现在我试图将其滚动到特定的索引路径。
func scrollCollectionView(indexpath:IndexPath)
{
// collectionView.scrollToItem(at: indexpath, at: .left, animated: true)
//collectionView.selectItem(at: indexpath, animated: true, scrollPosition: .left)
collectionView.scrollToItem(at: indexpath, at: .centeredHorizontally, animated: true)
_ = collectionView.dequeueReusableCell(withReuseIdentifier: "DayCell", for: indexpath) as? DayCell
}
请告诉我如何实现它?
8条答案
按热度按时间wgmfuz8q1#
在控制器的
viewDidLoad
中,可以编写滚动到集合视图的特定索引路径的代码。raogr8fs2#
在Swift 4中,这对我很有效:
把它放在其他地方只会产生奇怪的视觉效果。
注意-刚才对我的原始帖子进行了编辑,希望将
viewDidLayoutSubviews()
更改为viewDidAppear()
。我拒绝了编辑,因为将函数的代码放在了其他任何地方(包括viewDidAppear
)在那个时候不起作用,而且这个帖子已经有10个upvots,这意味着它一定也在为其他人工作。我在这里提到它,以防有人想尝试viewDidAppear
。但我很确定我会尝试一下,否则就不会写“把它放在其他地方只会导致奇怪的视觉效果”。太久了我记不清细节了。1sbrub3j3#
你可以用这个
eoxn13cs4#
我用了你的答案@PGDev,但我把它放在
viewWillAppear
中,它对我很有效。sxpgvts35#
测试了这个
e0bqpujr6#
在控制器的viewDidLoad中,您可以编写代码
olhwl3o27#
我都试过了,但对我来说,只需要多加一行就行了
你可以在任何地方调用它。
kiz8lqtg8#