Nat*_*ies 1 iphone cocoa-touch core-animation quartz-graphics
我正在实现一个用2轴显示表格信息的视图,但是我开始遇到渲染所有单元格的性能问题.
视图看起来像这样:
+------------+-------------+------------+------------+------------+
| | 12.00am | 1.00am | 2.00am | 3.00am |
+------------+---------+---+---+--------+--------+---+-+---+------+
| Category 1 | x | x | x | x | x | |
+------------+---------+-------+-----+-----------+-----+---+------+
| Category 2 | | x | x |
+------------+---------+-------+----+--+--------------------------+
| Category 3 | | x | x | x |
+------------+--+---------------+-------+-------------------------+
Run Code Online (Sandbox Code Playgroud)
每个x标记单元格的中心,或标记放置在时间轴上的类别中的一条数据.单元格将包含单个文本标签.当按下细胞时,我需要知道按下了细胞.x轴将包含24个标记,并且将存在5到30行数据之间的任何位置.
目前,我已经使用3 main实现了它UIScrollViews; 一个在顶部,一个在侧面,然后是一个大的所有细胞.滚动大滚动视图时,它会更新顶部和侧面滚动视图的contentOffsets.这似乎工作得很好,而且非常直观.
大型scrollView有许多行视图,与左侧边栏中的标题对齐.然后将单元格插入它们各自的行视图中,并在x轴上移动以相对于时间标记对齐.数据单元不一定与x轴的每小时时间增量精确对齐.
我遇到了两个问题:
CALayer每个行和单元格视图的边框都绘制了1px边框).第一个问题的一些可能的天真解决方案:
有没有人对解决这个问题的最佳方法有任何高级别的意见?我以前没有处理过大量的数据/视图,所以任何输入都会非常感激.
我创建了一个名为DTGridView(可作为DTKit的一部分)的东西,用于这个目的(这是一个应用程序的电子编程指南).因此,它允许您在图表中显示的不同宽度的单元格.
DTGridView使用一个单独的UIScrollView并计算所需的位置.它还实现了单元重用(与UITableView相同).事实上,如果您知道如何使用表视图,那么DTGridView非常相似; 它使用dataSource来收集数据和视图,并提供委托方法(使用gridDelegate属性)来通知某些事件.
DTKit包含一个示例项目,它可以帮助您了解如何设置网格.
如果您需要任何帮助,请给我一个喊叫.我理解整个套件需要一些更好的记录.:)
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |