【问题标题】:Little glitch when scrolling UICollectionView to bottom in viewDidAppear在 viewDidAppear 中将 UICollectionView 滚动到底部时出现小故障
【发布时间】:2013-12-03 05:05:27
【问题描述】:

我希望我的 UICollectionView 自动滚动到底部。我的 viewDidAppear 中有这段代码,但是当我运行它时,在显示视图和集合视图滚动到底部之间总是有半秒的暂停。我阅读了其他问题,但尚未找到答案。有人有想法吗?

- (void)viewDidAppear:(BOOL)animated{

    NSInteger numbersOfItems = self.photoAssets.count - 1;
    NSLog(@"%i", [self.collectionView numberOfItemsInSection:0]);
    [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:numbersOfItems inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];

}

【问题讨论】:

    标签: ios iphone objective-c uicollectionview


    【解决方案1】:

    您的细胞启动速度快吗?可能发生的事情是创建可见单元格(顶部),然后必须创建一些额外的单元格,这会减慢感知的滚动时间。您可能希望降低它们的复杂性,和/或在项目加载到集合视图后立即滚动到项目,而不是等待 viewDidAppear。

    【讨论】:

    • 谢谢!在 collectionView:cellForItemAtIndexPath: 中加载项目后立即滚动到项目对我有用。
    【解决方案2】:

    您是否尝试过在 viewDidLoad 中调用此代码?

    NSInteger numbersOfItems = self.photoAssets.count - 1;
    NSLog(@"%i", [self.collectionView numberOfItemsInSection:0]);
    [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:numbersOfItems inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
    

    查看this guide 了解有关视图加载过程的更多信息

    【讨论】:

    • 如果我在 viewDidLoad 中调用它,numberOfItems 是 -1。
    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 2023-03-21
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多