This validation is invoked within a UICollectionView.CellRegistration.
It seems that modifying the cell-accessories after the cell has returned (via the async completion handler) does not trigger a view update of said cell.
Should it? Or is it better for me to persist this information in the model object and trigger a the snapshot update?
Setting a new array of cell accessories to the accessories property on UICollectionViewListCell will update the visible accessories in the cell, and cause the cell to internally layout its subviews again. You can even set the accessories in an animation to animate the change.It seems that modifying the cell-accessories after the cell has returned (via the async completion handler) does not trigger a view update of said cell.
However, there are a few things to keep in mind:
When you set an array of accessories, the array of accessories is copied by the cell, which means you need to set a new array to the property again to make any changes to any accessories.
Changing the accessories may change the height required for the cell (e.g. if more accessories are visible, less space is available for your cell content, which may cause text to wrap to multiple lines, etc). As with changes you make to any properties on the cell directly, changing the accessories will not cause the item's size (height) to be invalidated in the collection view. If you want to resize the cell, you need to invalidate the collection view layout to recompute the size.