gpt4 book ai didi

ios - 方法 scrollToItemAtIndexPath 在 iOS 14 上不起作用

转载 作者:行者123 更新时间:2023-12-05 08:49:29 24 4
gpt4 key购买 nike

我在 iOS 14 中遇到 scrollToItemAtIndexPath 问题。在以前的 iOS 版本中,当用户停止拖动时,下一个单元格水平居中,现在方法 scrollToItemAtIndexPath 被忽略,它仍然停留在第一个单元格中。

    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if( scrollView.tag == 1 ) {
if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad){
*targetContentOffset = scrollView.contentOffset; // set acceleration to 0.0
float pageWidth = (float) (self.view.frame.size.width)-80;
int minSpace = 10;

int cellToSwipe = (scrollView.contentOffset.x)/(pageWidth + minSpace) + (velocity.x < 0 ? 0 : 1); // cell width + min spacing for lines
if (cellToSwipe < 0) {
cellToSwipe = 0;
} else if (cellToSwipe >= MIN(6, self.news.count )) {
cellToSwipe = (int) MIN(6, self.news.count);
}
[self.newsCollectionView scrollToItemAtIndexPath: [NSIndexPath indexPathForRow:cellToSwipe inSection:0]
atScrollPosition: UICollectionViewScrollPositionCenteredHorizontally
animated: YES];

}
}

}

最佳答案

您可以使用 UICollectionViewLayoutlayoutAttributesForItem(at indexPath: IndexPath) 来计算适当的 contentOffset

修复可能是这样的:

extension UICollectionView {
func scrollTo(indexPath: IndexPath) {
let attributes = collectionViewLayout.layoutAttributesForItem(at: indexPath)!
setContentOffset(attributes.frame.origin, animated: true)
}
}

关于ios - 方法 scrollToItemAtIndexPath 在 iOS 14 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63996018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com