以编程方式删除UITableViewCell

时间:2011-09-11 22:06:21

标签: objective-c ios4 xcode4

我想知道在UITableView中创建所有单元格后是否可以删除空单元格(空=没有textLabel的单元格)。

2 个答案:

答案 0 :(得分:1)

为什么你有空单元?您是否使用一致的技术来控制表格中的单元格数量以及这些单元格的内容?

如果您正在使用UITableViewController,那么您的控制器将自动声明为tableview的数据源。如果您正在使用UIViewController,那么您将声明它符合UITableViewDataSource协议(并在Interface Builder中将其连接)。

无论哪种方式,作为tableview的数据源,您的控制器都需要实现两种方法: - tableView:cellForRowAtIndexPath: - tableView:numberOfRowsInSection:

据推测,您使用数组或其他方法在tableview中提供tableview的数据:cellForRowAtIndexPath:。在此方法中,单元格的标签将从数组中的条目设置。在tableView:numberOfRowsInSection中:你将做[myArray count]之类的事情来返回单元格的数量。 tableview:cellForRowAtIndexPath将被告知多次(由tableview中提供的内容决定:numberOfRowsInSection :)。如果数据源数组发生更改,并且您希望在tableview中反映更改,则可以调用

[self.tableview reloadData];  //if inside a UITableViewController

[self.myTableViewOutlet reloadData];  //if inside a UIViewController

请注意,reloadData会重新加载整个tableview,因此在某些情况下,这可能会计算成本很高。在这种情况下,您可以使用以下方法关注单个行,而不是调用reloadData:deleteRowsAtIndexPaths:withRowAnimation :(请参阅UITableView Class Reference

答案 1 :(得分:0)

作为应用代表,您负责提供单元格。您有责任返回每个单元格以及表格中的单元格数量。因此,作为app委托,您应该有一个方法(通过NSMutableArray或其他方式)来改变您返回到表视图的数据。