2013-09-25 5 views
2

У меня есть UICollectionView, который показывает магазины в определенном городе. В определенном городе могут отсутствовать какие-либо магазины, поэтому в этом случае я должен обновить UICollectionView, чтобы он был пустым. Когда я делаю nil параметр данных, приложение аварийно скажет, что параметр данных не может быть равен нулю.пустой UICollectionView

Как я могу очистить UICollectionView? В этом случае, помимо отображения каких-либо ячеек вообще, я хотел бы показать фоновое изображение, информирующее пользователя о том, что нет хранилищ или вообще не удаляется коллекция.

любые идеи?

ответ

5

Я думаю, у вас есть массив с данными для создания ваших ячеек.

Вы можете добавить ярлык над своей коллекцией и скрыть эту метку, если есть ячейка или отобразить эту метку, если нет ячейки.

Итак, когда вы рассчитать свой массив, тест:

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

И у вас есть этот метод возвращает число ячеек (_data.count = 0, если нет данных)

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
{ 
    return _data.count; 
} 
+0

Что "NO: YES" делать? Я этого раньше не видел. –

+0

Это тройная операция. –

+0

Я, очевидно, пробовал это, но ошибка все еще остается. – Daniel

0

Я бы лично пойти с пыльниками правильным решением, вы можете создать свой собственный custom view и загрузить этот вид в фоновом режиме зрения UICollectionViw как это:

collectionView?.backgroundView = yourCustomView 

Это будет содержать правильное сообщение для пользователей о том, что в этом месте нет магазинов. Surly, вы должны скрыть или показать его в соответствии со счетчиком данных по viewWillAppear, как это:

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

или как это:

collectionView?.backgroundView = UIView(frame: CGRect.zero) 
Смежные вопросы