3

我有一个UICollectionView显示特定城市的商店。一个特定的城市可能根本没有任何商店,所以在这种情况下,我应该将 UICollectionView 更新为空。当我制作nil数据参数时,应用程序崩溃说数据参数不能为零。

如何清空 UICollectionView?在这种情况下,除了根本不显示任何单元格之外,我还想显示一个背景图像,通知用户没有商店,或者一起删除 collectionView。

有任何想法吗?

4

2 回答 2

6

我认为您有一个包含数据的数组来创建您的单元格。

您可以在集合视图上方添加标签,如果有单元格则隐藏此标签,如果没有单元格则显示此标签。

所以,当你计算你的数组时,添加一个测试:

self.myLabel.hidden = (_data.count > 0);

你有这个方法来返回单元格的数量(如果没有数据,_data.count = 0)

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return _data.count;
}
于 2013-09-25T21:06:08.627 回答
2

我个人会采用另一种适当的解决方案,您可以创建自己的自定义视图并将此视图加载到 UICollectionViw 的背景视图中,如下所示:

collectionView?.backgroundView = yourCustomView

这将包含一个适当的消息,告知用户该位置没有商店。Surly,您必须根据 viewWillAppear 上的数据计数隐藏或显示它,如下所示:

collectionView?.backgroundView.isHidden = _data.count == 0

或像这样:

collectionView?.backgroundView = UIView(frame: CGRect.zero)
于 2017-04-27T08:30:33.753 回答