Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
Iphone UITableView调用didSelectRowAtIndexPath时didSelectRowAtIndexPath问题_Iphone_Uitableview - Fatal编程技术网

Iphone UITableView调用didSelectRowAtIndexPath时didSelectRowAtIndexPath问题

Iphone UITableView调用didSelectRowAtIndexPath时didSelectRowAtIndexPath问题,iphone,uitableview,Iphone,Uitableview,我有一个带有CustomCell的UITableView,我在CustomCell中添加了UIImage,UILabel。。。 但是,当我在第1行中选择单元格并删除其上的UIImage时:[[cell.contentView view withtag:TAG\u FOR_TOPIMAG]removeFromSuperview]但是,索引7处的单元格已更改为相同的单元格1。表视图重用单元格(dequeueReusableCell…。 因此,同一单元格(视图)可用于表中的多个索引。 更改单元格的布局

我有一个带有CustomCell的
UITableView
,我在CustomCell中添加了
UIImage
UILabel
。。。 但是,当我在第1行中选择单元格并删除其上的
UIImage
时:
[[cell.contentView view withtag:TAG\u FOR_TOPIMAG]removeFromSuperview]但是,索引7处的单元格已更改为相同的单元格1。

表视图重用单元格(dequeueReusableCell…。
因此,同一单元格(视图)可用于表中的多个索引。
更改单元格的布局(添加/删除/修改子视图)后,此单元格(视图)每次显示在屏幕上时都会显示为“已修改”-即使每次都表示不同的索引

例如,在您的情况下,屏幕上最多可同时看到6个单元格。
因此,您已经修改了某些单元格(一旦您修改了它,它就显示为索引1),在您滚动表格之后,索引为1的单元格从屏幕上消失,然后索引为7的单元格应该显示(在滚动期间)。该表将使用与用于显示索引为1的行相同的单元格(完全相同的UITableViewCell对象)。
但是你已经从中删除了图像

在使用桌子时,您必须始终牢记这一点。

在您的情况下,我建议您将图像视图的可见性设置为隐藏,并在每个
tableView“cellforrowatinexpath:
方法中恢复它(不在
if(cell==nil)
语句中-在它之后).

如果不看您如何初始化单元格,很难判断。如果您共享UIView实例,您必须知道UIView只能是一个视图层次结构的一部分。感谢您的回复,我将“removeFromSuperview”更改为“setHidden:是”" . 但它不会改变!根据我的回答,这不是你应该做的唯一一件事。必须在cellForRowAtIndexPath方法中恢复其隐藏状态。您应该将此隐藏/可见状态保存在数据结构中,每次从CellForRowatineXpath返回单元格之前,都应该将其设置为。。。