我想知道是否有办法将某个UICollectionViewCell
滚动到视图的顶部?
我尝试了collectionView.scrollToItemAtIndexPath()
方法,但不是将单元格滚动到视图的顶部,而是将单元格滚动到视图的中心。
答案 0 :(得分:3)
您可以使用以下代码:
#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
[collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
}
但是,如果要强制滚动,请尝试此操作。
#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
[collectionView setContentOffset:CGPointMake(cell.center.x - collectionView.frame.size.width * 0.5, cell.frame.origin.y) animated:YES];
}
答案 1 :(得分:0)
您还可以实现UIScrollViewDelegate方法scrollViewShouldScrollToTop:如果传入的滚动视图等于您要滚动到顶部的滚动视图,则返回YES:
-(BOOL) scrollViewShouldScrollToTop:(UIScrollView*) scrollView
{
if (scrollView == self.myTableView)
{
return YES;
}
else
{
return NO;
}
}
如果您在屏幕上没有多个滚动视图/表格视图/集合视图