在iOS 7中,给定一个UICollectionView,如何在底部启动它?考虑一下iOS消息应用程序,当 View 可见时,它总是从底部开始(最近的消息)。
最佳答案
问题是,如果您尝试在viewWillAppear中设置集合 View 的contentOffset,则该集合 View 尚未呈现其项目。因此self.collectionView.contentSize仍为{0,0}。解决方案是向集合 View 的布局询问内容大小。
此外,您将要确保仅在contentSize高于集合 View 的边界时才设置contentOffset。
完整的解决方案如下所示:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGSize contentSize = [self.collectionView.collectionViewLayout collectionViewContentSize];
if (contentSize.height > self.collectionView.bounds.size.height) {
CGPoint targetContentOffset = CGPointMake(0.0f, contentSize.height - self.collectionView.bounds.size.height);
[self.collectionView setContentOffset:targetContentOffset];
}
}
关于ios - 在底部启动UICollectionView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21800400/