Ios 具有可锁定列和水平滚动的表视图?
我希望创建一个具有以下功能的表:Ios 具有可锁定列和水平滚动的表视图?,ios,uitableview,uiscrollview,uicollectionview,Ios,Uitableview,Uiscrollview,Uicollectionview,我希望创建一个具有以下功能的表: 与其余部分水平滚动的可变列数 桌子 不水平滚动的可变可锁定列数 和桌子上的其他人一起 可排序列标题 垂直滚动 水平滚动 我见过人们使用不同的策略来实现类似的功能,包括: UITableview,每个表单元格包含一个UITableview 将变换90度放置在另一个UIScrollview中以处理水平滚动。然而,为了使其正常工作,我需要为每个单元格使用锁定的旋转表格视图,如果我想滚动整个主表格,而不是每个表格单元格中的表格,那么单元格取消查询似乎会有一些有趣的地
- 与其余部分水平滚动的可变列数 桌子
- 不水平滚动的可变可锁定列数 和桌子上的其他人一起
- 可排序列标题
- 垂直滚动
- 水平滚动
Thx我已经在自己的一个应用程序中完成了这项工作-看看。它的委托/数据源调用与UITableView的调用类似。我通过三个视图实现了这一点,通过标准协议和一个视图控制器进行管理。在这个解决方案中,您只关心链接两个表视图控制器的垂直滚动。水平滚动通过一个环绕表格视图主体的滚动视图免费提供。我使用以下UITableViewDelegate函数获取锁定的列标题:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
视图结构:
- View - The VCs root view
- Table View - rowHeadersTable - the locked left hand columns
- Scroll View - rowBodyHorizontalScrollView - a container of the table body
- Table View - rowBodyVerticalContentTableView - the table body, as wide as it needs to be beyond the frame of the parent scroll view
视图控制器:
- View - The VCs root view
- Table View - rowHeadersTable - the locked left hand columns
- Scroll View - rowBodyHorizontalScrollView - a container of the table body
- Table View - rowBodyVerticalContentTableView - the table body, as wide as it needs to be beyond the frame of the parent scroll view
实施的协议:
@interface LockedTableColumnsViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>
管理RowHeaderTable和rowBodyVerticalContentTableView之间的垂直滚动链接:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView == self.rowBodyVerticalContentTableView) {
[self.rowHeadersTable setContentOffset:CGPointMake(self.rowHeadersTable.contentOffset.x, scrollView.contentOffset.y)];
}
else if (scrollView == self.rowHeadersTable) {
[self.rowBodyVerticalContentTableView setContentOffset:CGPointMake(self.rowBodyVerticalContentTableView.contentOffset.x, scrollView.contentOffset.y)];
}
}
注意:由于它使用了原型单元格等,因此对于长(意味着高)表,这将表现得很好。但是,它不会针对水平密集的行内容进行优化。我的表体内容是文本和有限数量的列。如果您没有这种奢侈,您可以始终将表的行主体设置为水平流动的集合视图,但随后必须链接所有行集合视图偏移(我想是通过可见单元格)。那是另一种动物。祝你好运 如果您的目标操作系统早于iOS 6.0,则可以使用所述的嵌套表视图。不要忘记同步每个水平表的内容偏移量 但是如果你的目标是iOS 6.0+,你可以使用它,但是它的性能非常差,你不能为它的列设置不同的大小
最好的选择是编写自己的UICollectionView布局 是的,我偶然发现了这个库,尽管它似乎没有对锁定的列进行排序。似乎需要更多的工作来实现该功能,然后尝试推出我自己的?@s.newave您必须推出自己的解决方案来解决该问题-就像使用普通的旧UITableView一样。我们的产品内置了所有这些功能: