gpt4 book ai didi

ios - 具有自定义分页行为的 UITableView

转载 作者:可可西里 更新时间:2023-11-01 04:11:33 25 4
gpt4 key购买 nike

我正在尝试在 UITableView 中为自定义大小的页面实现分页。我想要实现的是让事件单元格的顶部与tableView 的顶部,同时仍显示 tableView 底部下一个单元格的顶部(以促使用户滚动并查看更多单元格)。

我的单元格都是等高的。

如果我设置 paging=YES,这会导致轻微的偏移,当我翻阅页面时偏移会增加。这是因为我的 tableView 比单个单元格略高,并且单元格高度/页面大小未对齐。

我在启用分页的情况下尝试了不同的方法。我尝试将 tableView 的大小设置为单元格的高度,但随后关闭剪裁和 mask ,以便用户仍然可以看到下一个单元格。这不起作用,因为下一个单元格仅在单元格滚动到 tableView 的边界框之前的最后毫秒添加到基础 scrollView。

然后我开始实现不同的 scrollView 委托(delegate)方法来模拟分页行为 - 我似乎无法正确处理。

除其他外,我尝试过这样的事情:

- (void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
float cellHeight = [myCell rowHeight];
int index = floorf(scrollView.contentOffset.y / cellHeight);

*targetContentOffset = CGPointMake(targetContentOffset->x, targetContentOffset->y = (index * cellHeight));
}

虽然它做了正确的事情,但它的行为与启用分页的 scrollView/tableView 完全不同。

我在这里发现了一些试图实现相同目标的人的帖子,但答案与我自己尝试过的任何东西一样,都存在“非本地快照感觉”。

感谢您提供的任何帮助。

iOS >= 5.0

最佳答案

实现 scrollViewWillEndDragging:withVelocity:targetContentOffset: 以返回最接近 targetContentOffset 的单元格的顶部坐标,而不是最接近您的起始偏移量。 jjv360 提供的解决方案在这方面做得很好,但您可能需要根据单元格的平均高度对其进行一些调整(jjv360 的解决方案在真正大的单元格上可能过于活泼)。

我想补充一点,您可以通过更改 decelerationRate 属性,使 UITableView 的减速更快,使其表现得更像分页 UIScrollView (只需在 init/viewDidLoad/wherever 中执行一次)。

self.tableView.decelerationRate = UIScrollViewDecelerationRateFast;

关于ios - 具有自定义分页行为的 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271621/

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