显示/隐藏UITableView部分中的行

时间:2011-02-01 23:12:01

标签: uitableview multidimensional-array nsmutablearray ipad

我正在尝试创建一个设置的UITableView,以便当我单击某个部分时,它会隐藏上一部分中的行并显示新选择部分的行。 tableView使用名为menuItems的数组数组设置。 menuItems包含其他几个数组,包括contactInfoArray,clientInfoArray,jacketArray和shirtArray。在每个这些数组中,objectAtIndex:0是Section Title,有效地充当标题。

因此,例如,当应用程序加载时,它应首先显示contactInfoArray的所有行,但随后显示每个其他数组的ObjectAtIndex:0(标题)。当我然后点击其中一个部分标题,例如:“Jacket”时,我需要该表隐藏contactInfoArray objectsAtIndexes:1+,但不是对象0,同时(或具有可接受的延迟)显示jacketArray objectsAtIndexes :1 +

我通过调用重载数据获得了预期的结果,但我想要更改动画,而reloadData不允许这样做。我找不到任何教程或示例代码来执行此操作。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

感谢我的好朋友Darren帮我解决了这个问题!

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section{
return (indexPath.section == currentSection) ? [[menuItems objectAtIndex: indexPath.section ] count] : 1;
} 

我需要做的就是设置一个立即变量(在我的情况下是“currentSection”,它是一个int),并在didSelectRowAtIndexPath:方法中设置它的值。然后我设置了我的表,以便该部分的第0行充当部分标题。

这样做是为了当我点击章节标题时,它会“折叠”开放部分并“展开”新选择的部分。