Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 以编程方式删除UITableViewCell_Objective C_Ios4_Xcode4 - Fatal编程技术网

Objective c 以编程方式删除UITableViewCell

Objective c 以编程方式删除UITableViewCell,objective-c,ios4,xcode4,Objective C,Ios4,Xcode4,我想知道在UITableView中创建完所有单元格后,是否可以删除空单元格(empty=没有textLabel的单元格) 作为应用程序代表,您负责提供单元格。返回表中的每个单元格和单元格数是您的责任。因此,作为应用程序代理,您应该有一种方法(通过NSMutableArray或其他方式)来改变返回到表视图的数据。为什么有空单元格?您是否使用一致的技术来控制表中的单元格数量和这些单元格的内容 如果您使用的是UITableViewController,那么您的控制器将自动声明为tableview的数据

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

作为应用程序代表,您负责提供单元格。返回表中的每个单元格和单元格数是您的责任。因此,作为应用程序代理,您应该有一种方法(通过NSMutableArray或其他方式)来改变返回到表视图的数据。

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

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

无论哪种方式,作为tableview的数据源,控制器都需要实现两种方法: –tableView:CellForRow索引路径: –表视图:行数部分:

假设您正在使用数组或其他方式为tableview提供数据-tableview:cellForRowAtIndexPath:。在这个方法中,单元格的标签将从数组中的一个条目设置。在tableView内部:numberOfRowsInSection:您将执行类似于[myArray count]的操作来返回单元格数。tableview:cellForRowAtIndexPath将被调用任意次数(由tableview:NumberOfRowInSection:中提供的内容决定)。如果数据源数组发生更改,并且希望在tableview中反映更改,则可以调用

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

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

请注意,重新加载数据会重新加载整个tableview,因此在某些情况下,这在计算上可能会很昂贵。在这种情况下,您可以使用方法:deleteRowsAtIndexPaths:withRowAnimation:(请参见)

而不是调用reloadData,将重点放在单个行上“应用程序委托”应该与视图控制器的tableview没有什么关系。你是指tableview委托和数据源吗?嘿,matt,我发现了问题,是我用来异步加载图像的库导致单元格为空。因为你已经回答了我在这里发布的几个问题,你对我的工作已经很熟悉了:),现在我面临一个问题,当我注销一个用户,然后用另一个用户登录时,问题是UITableView无法刷新以获取新用户的新数据,即使用户ID已更新,并且我已在viewdidload()中添加了一个重载数据,您知道为什么吗?如果不看到一些代码,很难说。您可以在新问题中发布代码。制定一个包含部分代码的结构良好的问题通常也是思考问题的好方法。同时,要自己调试问题,您应该将NSLog(@“此处有一些文本”);tableview:cellForRowAtIndexPath:method和viewDidLoad方法中的语句。这将帮助您查看方法何时被调用或是否未被调用。感谢您的回复,找到了一个解决方案。。。由于某些原因,当您使用tabBar控制器时,它会缓存UIView,所以我只使用函数viewWillAspect()来更新UIView。但再次感谢您,这是正确的,为了提高速度,视图保留在内存中。因此viewDidLoad通常只调用一次。如果内存警告情况迫使它卸载,可能会在以后调用它。太好了,ViewWillAppeal是一个适合您的场景的好地方。