Ric*_*kiG 5 uitableview uiscrollview ios
我正在尝试在UITableView中实现自定义大小页面的分页.我想要实现的是让活动单元格的顶部与tableView的顶部对齐,同时仍然显示tableView底部的下一个单元格的顶部(以使用户倾斜并查看更多单元格) .
我的细胞都高度相等.
如果我paging=YES将此结果设置为略微偏移,当我浏览页面时会增加.这是因为我的tableView比单个单元格略高,并且单元格高度/页面大小没有对齐.
我已尝试启用分页的不同功能.我尝试将tableView的大小设置为单元格的高度,但随后关闭剪切和屏蔽,以便用户仍然可以看到下一个单元格.这不起作用,因为下一个单元格仅在单元格滚动到tableView的边界框之前的最后一个ms添加到底层scrollView.
然后我开始实现不同的scrollView委托方法来模仿分页行为 - 我似乎无法做到正确.
除其他外,我尝试过这样的事情:
- (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));
}
Run Code Online (Sandbox Code Playgroud)
虽然它做了正确的事情,但它的行为与启用分页的scrollView/tableView完全不同.
我在这里发现了一些试图达到同样效果的人的帖子,但答案却遭遇了与我自己尝试的任何事情相同的"非本地快照".
谢谢你给予的任何帮助.
iOS> = 5.0
Fil*_*lic 11
实现scrollViewWillEndDragging:withVelocity:targetContentOffset:返回最靠近targetContentOffset,不最接近起始偏移的单元格的顶部坐标.提供的解决方案jjv360做得很好,但你可能想稍微调整一下,具体取决于你的单元平均有多高(jjv360的解决方案可能在真正的大单元上过于活泼).
我想补充一点,你可以通过改变它的属性来使UITableView减速速度更快,更像是分页(只需在init/viewDidLoad/wherever中执行一次).UIScrollViewdecelerationRate
self.tableView.decelerationRate = UIScrollViewDecelerationRateFast;
Run Code Online (Sandbox Code Playgroud)
如果关闭分页,您可以使用UIScrollView委托函数:
-(void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint*)targetContentOffset {
// Get index path for target row
NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint:(*targetContentOffset)];
// Set new target
(*targetContentOffset) = [self.tableView rectForRowAtIndexPath:indexPath].origin;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7049 次 |
| 最近记录: |