在这种情况下,我不需要那么多UITableViews。我有一个相当复杂的Menu对象。它有标题和项目,就像这样(想象一下rails acts_as_tree,其中menuHeaders数组可以任意深度,因此有三个抽象:一个Menu,一个可以嵌套的MenuHeaders数组,以及一个MenuItems数组):
Menu
\menuHeaders is an array
menuHeader - name="Service"
\menuHeaders[]
\menuItems
\menuItem="transmission fix"
\menuItem="replace gaskets"
menuHeader - name="Specials"
\menuHeaders
\menuHeader -name="Tires"
\menuItem - special tire
\menuItem - verySpecial Tire
\menuItems
\menuItem - name="oil change"
\menuItem - name="windows clean"
表中的输出:
Service
transmission fix
replace gaskets
Specials
Tires
special tire
verySpecial Tire
oil change
windows clean
我不确定是否应该将其构建为一个单元UITableView,或者每个子数组是否应该是它自己的UITableView,或者我将如何迭代每个元素?看起来cellForRowAtIndexPath只能处理单个数组或2D数组,而不是这个。我将如何构建这个?
当我在jQuery中渲染时,我会执行类似
的操作renderMenHeader(menuHeader)
if(menuHeader.menuItems){
for(mi in menuHeader.menuItems){
renderMenuItem(mi)
}
}
if(menuHeader.menuHeaders){
for(mh in menuHeader.menuHeaders){
renderMenuHeader(mh)
}
}
但不确定如何将其映射到UITableView抽象。总而言之,我宁愿将这些作为单独的UIView保留,但它们可以达到300-500个单位,因此我需要能够处理仅可见元素的处理。如果在通用的UIView中有一个workaroudn来处理这个问题,那也是有意义的。
THX