- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试实现一个自定义标签栏,它是可滚动的并且在每个标签栏项目上都有分页。为此,我正在使用代理 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/
我是一名优秀的程序员,十分优秀!