2016-03-10 72 views
3

我有一些NSNotifications正在进行,我想根据与它们关联的标签更新我的单元格。可以通过标记获取UICollectionViewCell吗?

这可能吗?

要阐述我有一个UILabel,在我的UITableViewCell一个UIProgressView,我将要更新,如果通知对象包含一个匹配的标签。

我在后台同步数据和每一个我处理的数据块时我送了一个NSNotification。

我想UICollectionView细胞,以反映最新的状态。

要做到这一点,我想通过标签来获取的UITableViewCell,然后用新的数据更新的UILabel和UIProgressView。

+0

你能详细说明一下吗?你有任何代码方便吗? – MrHaze

+0

使用'tag'可能不可取。包含模型可以用来识别受影响的单元格的标识符可能会更谨慎,然后让观察者将其转换为“NSIndexPath”并查看该单元格当前是否可见。但是,如果没有关于您的模型的更多信息,则很难再向您提供建议。 – Rob

回答

4
  1. 不要被标签获得细胞,通过indexPath
  2. 让他们不要indexPath
  3. 获得细胞没有得到他们

(1)你可以得到的意见通过标记,但每次绘制时都需要更新视图标记以匹配其索引路径。所以(2)索引路径一样好。但(3)他们是没有好或者,因为直接调整细胞是不是我们如何做的MVC-土地

这里的正确的计划是更新你的模型(MVC而言,集合视图数据源阵列更具体)以反映世界的变化,然后告诉您的收藏认为,这是过时的(reloadData是大铁锤,reloadItemsAtIndexPaths:是手术刀)。

这意味着你的模型必须包含的数据反映,可以用来作为一个进度条参数的下载进度的状态(如浮动),并且您的cellForItem ......方法必须检查此值,并修改单元格的进步视图。

+0

他不知道要重新加载哪个索引路径。 – MrHaze

+0

@MHHaze - 这从OP不清楚。 OP当然可以也应该能够将下载过程映射到相应的数据源对象。这也是标签和indexPaths的先决条件。 – danh

+0

当然,我并不反对,但是如果你所有的a都是对单元格标签的引用,那么你不能仅仅根据它来获取索引路径。 – MrHaze

1

你不能这样做,因为细胞会重用每次时间。如果你包的标签,这不仅仅是重装cells.If要做到这一点,你应该更新你的模型,然后重新加载更新的细胞不容易。

相关问题