gpt4 book ai didi

ios - scrollViewWillEndDragging :withVelocity:targetContentOffset: not working on the edges of a UISCrollView

转载 作者:IT王子 更新时间:2023-10-29 07:51:43 26 4
gpt4 key购买 nike

我正在尝试实现一个自定义标签栏,它是可滚动的并且在每个标签栏项目上都有分页。为此,我正在使用代理 scrollViewWillEndDragging:withVelocity:targetContentOffset: 它完美地解决了一个问题。

我的分页工作方式是,如果 contentOffset 靠近正确的项目,则 targetContentOffset 更改为该项目的偏移量。左侧也是如此。

问题是,每当我位于第一个项目的左半部分和最后一个项目的右侧( ScrollView 水平工作)时,它应该转到 ContentOffset 0 和最右边项目的内容偏移量(减去屏幕上的那些),但事实并非如此。

我检查了调试器,targetContentOffset->x 确实是 0(在第一种情况下 - 最左边的项目的左边)。所以问题是 UIScrollView 没有在那里滚动。我迷路了。

这是我实现的委托(delegate):

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
NSInteger index = lrintf(targetContentOffset->x/self.tabWidth);
targetContentOffset->x = index * self.tabWidth;
}

这是解释我想做什么的图表。

|-------|-------|-------|-------|-------|-------|-------|
| | | | | | | |
| | | | | | | |
|_______|_______|_______|_______|_______|_______|_______|

|_______________________________________|
where it is and i scroll it to the left

<----|

|_______________________________________|
where it would stop

|_______________________________________|
where i want it to stop

最佳答案

这似乎是一个已知问题。经过一番调查并与其他人交谈后,有人认为这可能是一个错误,事实证明这是正确的。我向 Apple 报告了它,它是否被标记为重复但仍处于打开状态。只是回答那些有同样问题的人。我像 Big Papoo 建议的那样解决它,通过使用接近我想要的偏移量(0.1 似乎可以做到)。右端也一样。

关于ios - scrollViewWillEndDragging :withVelocity:targetContentOffset: not working on the edges of a UISCrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880434/

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