Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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 以后是否删除UITableViewCell的accessoryView?_Iphone_Cocoa Touch_Uitableview - Fatal编程技术网

Iphone 以后是否删除UITableViewCell的accessoryView?

Iphone 以后是否删除UITableViewCell的accessoryView?,iphone,cocoa-touch,uitableview,Iphone,Cocoa Touch,Uitableview,因此,我将活动指示器设置为选中表格视图单元格时的附件视图 UITableViewCell *cell = [tableVw cellForRowAtIndexPath:indexPath]; UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; [act startAnimating]; [c

因此,我将活动指示器设置为选中表格视图单元格时的附件视图

UITableViewCell *cell = [tableVw cellForRowAtIndexPath:indexPath];
UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[act startAnimating];
[cell setAccessoryView:act];
[act release];
稍后,当我有需要移动的数据时,我想在转换到另一个视图之前删除此活动指示器,以便单元格返回到其默认状态。下面的方法根本不起作用

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.tableView.indexPathForSelectedRow];
[cell.accessoryView removeFromSuperview];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];

您应该有某种方法来确定对象是否需要tableView中的活动指示器:cellForRowAtIndexPath:。例如,维护一个字典或数组来存储索引路径上的单元格是否仍在执行某些操作,或者创建一个模型对象,该对象的属性表示它是否正在加载,等等

在tableView:cellForRowAtIndexPath:中,检查该索引路径上的单元格是否需要活动指示器视图,如果不需要,请将单元格的accessoryView设置为零

然后,要在以后拆下附件视图:
[tableView重新加载RowsAndExpath:[NSArray arrayWithObject:theIndexPath]和RowAnimation:UITableViewRowAnimationNone]

您应该有某种方法来确定对象是否需要表视图中的活动指示符:cellforrowatinexpath:。例如,维护一个字典或数组来存储索引路径上的单元格是否仍在执行某些操作,或者创建一个模型对象,该对象的属性表示它是否正在加载,等等

在tableView:cellForRowAtIndexPath:中,检查该索引路径上的单元格是否需要活动指示器视图,如果不需要,请将单元格的accessoryView设置为零

然后,要在以后拆下附件视图:
[tableView重新加载RowsAndExpath:[NSArray arrayWithObject:theIndexPath]和RowAnimation:UITableViewRowAnimationNone]

您是否尝试过不使用removeFromSuperview线?另外,您的tableView的名称是什么?在第一个代码块中,与第二个代码块不同。如果不是复制/粘贴错误,这可能是一个问题。获取单元格本身的引用并删除附件视图将不起作用。首先,您不想删除附件视图,只需将其设置为nil即可。您需要通过调用reloadRowsAtIndexPaths:,告诉表视图重新绘制单元格。@anschuchimala-谢谢。这是方法的一部分。将其设置为nil似乎有帮助,但在选择另一行之前,“活动”视图不会消失并更改回默认单元格附件。重新加载rowsatindexpaths似乎没有任何作用您在没有removeFromSuperview行的情况下尝试过吗?另外,您的tableView的名称是什么?在第一个代码块中,与第二个代码块不同。如果不是复制/粘贴错误,这可能是一个问题。获取单元格本身的引用并删除附件视图将不起作用。首先,您不想删除附件视图,只需将其设置为nil即可。您需要通过调用reloadRowsAtIndexPaths:,告诉表视图重新绘制单元格。@anschuchimala-谢谢。这是方法的一部分。将其设置为nil似乎有帮助,但在选择另一行之前,“活动”视图不会消失并更改回默认单元格附件。重新加载RowsatindExpaths似乎没有任何作用看起来他们正在尝试触摸启动活动指示器,然后在下一个视图出现之前将其清除,因此在CellForRowsatindExpaths中启动指示器似乎不符合逻辑。正确,在选择该行之前,单元格不需要活动视图作为附件。我在后台获取一些数据,当返回数据时,我希望单元格恢复正常。不,您需要在CellForRowatineXpath中设置单元格:您不必启动活动指示器,然后,您可以在DidSelectRowatineXpath中启动它:如果需要。否则,如果表格视图重新加载单元格(如果它被滚动到屏幕外并被回收等),您将遇到问题。您需要在模型中进行更改,并通过在更改的索引路径处重新加载行来更新视图以反映这些更改。看起来他们正在尝试在触摸屏上启动活动指示器,然后在下一个视图出现之前将其删除,因此在cellForRowAtIndexPath中启动指示器似乎不符合逻辑。正确,在选择该行之前,单元格不需要活动视图作为附件。我在后台获取一些数据,当返回数据时,我希望单元格恢复正常。不,您需要在CellForRowatineXpath中设置单元格:您不必启动活动指示器,然后,您可以在DidSelectRowatineXpath中启动它:如果需要。否则,如果表格视图重新加载单元格(如果它被滚动到屏幕外并被回收等),您将遇到问题。您需要在模型中进行更改,并通过在更改的索引路径处重新加载行来更新视图以反映这些更改。