iOS collectionView:如何将单元格滚动到屏幕顶部
iOS collectionView: how to scroll a cell to the top of the screen
我想知道是否有办法将某个 UICollectionViewCell
滚动到视图顶部?
我尝试了 collectionView.scrollToItemAtIndexPath()
方法,但不是将单元格滚动到视图的顶部,而是将单元格滚动到视图的中心。
您可以使用以下代码:
#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];
}
您还可以实现 UIScrollViewDelegate 方法 scrollViewShouldScrollToTop: 和 return 如果传入的滚动视图等于您要滚动到顶部的视图,则为 YES:
-(BOOL) scrollViewShouldScrollToTop:(UIScrollView*) scrollView
{
if (scrollView == self.myTableView)
{
return YES;
}
else
{
return NO;
}
}
如果您的卷轴不超过一个 view/table view/collection 在屏幕上查看
我想知道是否有办法将某个 UICollectionViewCell
滚动到视图顶部?
我尝试了 collectionView.scrollToItemAtIndexPath()
方法,但不是将单元格滚动到视图的顶部,而是将单元格滚动到视图的中心。
您可以使用以下代码:
#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];
}
您还可以实现 UIScrollViewDelegate 方法 scrollViewShouldScrollToTop: 和 return 如果传入的滚动视图等于您要滚动到顶部的视图,则为 YES:
-(BOOL) scrollViewShouldScrollToTop:(UIScrollView*) scrollView
{
if (scrollView == self.myTableView)
{
return YES;
}
else
{
return NO;
}
}
如果您的卷轴不超过一个 view/table view/collection 在屏幕上查看