2016-07-15 12 views
1

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

func prepareCollectionViewDataSource() { 
     var x = self.city?.forecasts 
     x?.removeFirst() 
     self.otherDaysForecasts = x 
    } 

Это как х выглядит как:

[0] : Forecast 
     - temperature : 296.84199999999998 { ... } 
     - maximum : 296.84199999999998 { ... } 
     - minimum : 296.84199999999998 { ... } 
     - description : "light rain" { ... } 
     - icon : "10d" { ... } 
     - humidity : 92.0 { ... } 
     - pressure : 1021.4299999999999 { ... } 
     - wind : 1.8600000000000001 { ... } 
     - date : 2016-07-18 18:00:00 +0000 

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

Любое предложение, как это сделать?

+0

добавьте свой ответ json, чтобы легко извлечь в эти ячейки коллекции – xmhafiz

ответ

1

В целях сбора, во-первых, вам необходимо подготовить данные, а затем заполнить его соответствующим образом, используя UICollectionViewDataSource

Ваши данные должны быть переменными класса, так он доступен из любых методов в классе

var forcastData = [] // this is your x, array of dictionary 

Здесь это ваш UICollectionViewDataSource

extension YourViewController : UICollectionViewDataSource { 

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
     return 1 
    } 

    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return forcastData.count 
    } 

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UICollectionViewCell 
     // Here is the main part to configure the cell 
     let data = forcastData[indexPath.row] 
     // let say you have label for temparature that we want to set from your data in json dictionary 
     cell.temperatureLabel.text = String(format: "%.2f MB", data.["temperature"].double!) 
     return cell 
    } 
} 

Существует простое руководство here. Также попробуйте подробнее узнать о пользовательской ячейке для UICollectionView