- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 scrollViewWillEndDragging:
方法来滚动我自己的分页 UICollectionView,在两侧都有预览,类似于 App Store 应用程序。但是,如果我停止无惯性拖动(即,只需抬起手指),使用 ScrollView 下方的代码只会滚动到所需的矩形。如果我以任何惯性轻弹,该方法仍会被调用,但 ScrollView 不会不滚动所需的矩形,它只是继续滚动?
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset
{
int itemWidth = 280;
MyCollectionView *collectionView = (MyIndexedCollectionView *) scrollView;
int totalPages = [self.colorArray[collectionView.index] count];
int currentPage;
int nextPage;
if (lastContentOffset < (int)scrollView.contentOffset.x)
{
// moved right
NSLog(@"scrolling right");
double currentPageOffset = ceil((scrollView.contentSize.width -
scrollView.contentOffset.x) / itemWidth);
currentPage = totalPages - currentPageOffset;
nextPage = currentPage >= totalPages ? totalPages : currentPage + 1;
}
else if (lastContentOffset > (int)scrollView.contentOffset.x)
{
// moved left
NSLog(@"scrolling left");
double currentPageOffset = floor((scrollView.contentSize.width -
scrollView.contentOffset.x) / itemWidth);
currentPage = totalPages - currentPageOffset;
nextPage = currentPage <= 0 ? 0 : currentPage - 1;
}
int xOffset = (nextPage * itemWidth);
int nextOffsetPage = (totalPages - ((scrollView.contentSize.width - xOffset) /
itemWidth)) + 1;
[scrollView scrollRectToVisible:CGRectMake(xOffset,
0,
collectionView.bounds.size.width,
collectionView.bounds.size.height)
animated:YES];
}
在放弃这种方法后,我尝试使用 scrollViewWillBeginDecelerating:
方法来代替,完全相同的代码可以完美地工作?我希望使用 scrollViewWillEndDragging:
方法的原因有两个:
scrollViewWillBeginDecelerating:
方法不会如果您在没有任何惯性的情况下抬起手指停止拖动,则不会被调用。任何想法,我是否误解了这个回调在做什么?
最佳答案
卫生部!!结果我应该一直使用 targetContentOffset
来设置我想要滚动到的偏移量而不是 scrollToRectToVisible:
ala:
*targetContentOffset = CGPointMake(myTargetOffset, targetContentOffset->y);
RTFM:)
关于ios - UIScrollView 委托(delegate)方法 scrollViewWillEndDragging : not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238474/
我在 TabelViewCell 中有 CollectionView,我正在尝试为 CollectionView 的单元格进行分页和居中。但是当我使用方法时 func scrollViewWillEn
我有一个 View 覆盖在 UITableView 的顶部。但是当用户在顶部 View 上拖动时,我需要触发 UITableView 事件的滚动事件。 我在 View 上添加了 UIPanGestur
我找遍了所有地方,但找不到答案。所以,开始吧。我创建了一个长 ScrollView ,里面有 568 像素(全屏) View 。当用户向下滚动时,我希望 ScrollView 捕捉到特定位置。这是我的
我正在为我的 UICollectionView 创建自定义分页。我希望底部的一些单元格卡在屏幕边缘,但是,通过常规分页,滚动到下一页意味着如果页面底部的一半单元格显示,它只会显示另一半在下一页。我想让
documentation声明它是 points(每秒,我假设)?但是,我得到的值在 (.5, 3.5) 范围内。然后 ScrollView 在停止之前移动了数百个点。实际初速度应该相差几个数量级。
这是我的覆盖代码 - 它只是计算捕捉到的位置: - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(C
我正在为 targetContentOffset 设置一个新值在 scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)在 UIT
我希望我的 UIScrollView 以特定的增量值自然地滑动到结尾,对应于水平滚动 UIScrollView 的每 50 个宽度点。为此,我定制的 scrollViewWillEndDragging
我正在尝试在 iOS 5 中使用新的 scrollViewWillEndDragging:withVelocity:targetContentOffset: UIScrollView 委托(deleg
我在一个 View Controller 上有两个 UITableViews( View Controller 是他们的代表)。其中之一将取决于 scrollViewWillEndDragging:w
我在同一个 View Controller 上使用 UITableView 和 UICollectionView。 我想改变 UICollectionView 的滚动方式,所以我在扩展中添加了一个 s
我正在尝试使用 scrollViewWillEndDragging: 方法来滚动我自己的分页 UICollectionView,在两侧都有预览,类似于 App Store 应用程序。但是,如果我停止无
我正在尝试实现一个自定义标签栏,它是可滚动的并且在每个标签栏项目上都有分页。为此,我正在使用代理 scrollViewWillEndDragging:withVelocity:targetConten
如何用 Swift 编写此代码? 更新:发布了我试图转换的方法,最初发布了一个不同的方法,这不是我试图隐藏的方法 这适用于 Objective C,但不适用于 Swift。当我尝试将 ceilf 和
我希望我的垂直 UIScrollView 仅在用户向上滚动时停在最大内容偏移处,或者在用户向下滚动时停在最小内容偏移处。 我正在使用以下两个函数 func targetContentOffset(fo
我是一名优秀的程序员,十分优秀!