How to fill UITableView with a data from Dictionary. Swift

后端 未结 3 667
臣服心动
臣服心动 2020-12-21 11:54

Please help me with filling table view cells with data from a dictionary. For instance, I have cell like so:

and for filling it with data I\'ve started with

3条回答
  •  萌比男神i
    2020-12-21 12:15

    I used a struct Rate to Reproduce your current Output

    struct Rate {
        var ask : Float?
        var bid : Float?
    
        static var shared = Rate()
    
        mutating func initWithDictValues(_ currentRate : Rate) {
            self.ask = currentRate.ask
            self.bid = currentRate.bid
        }
    }
    

    Currencies Array

    /// Array Declaration
    var currencies = [String:Any]()
    
    /// Add Values
    currencies = ["EUR":Rate(ask: 30.8500, bid: 30.8500),"USD":Rate(ask: 26.3000, bid: 26.3000),"RUB":Rate(ask: 0.4150, bid: 0.4150)]
    

    Get All Keys in Separate Array so we can Dequeue cell Easily

    var keysArray = Array(currencies.keys)
    

    TableView Function

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "CurrencyCell", for: indexPath) as! CurrencyCell
    
        /// Get CurrentKey
        let currentKey = keysArray[indexPath.row]
        let currentIndexKey : Rate = currencies[currentKey] as! Rate
    
        /// Assign Values
        cell.currencyLabel.text = currentKey
        cell.askLabel.text = currentIndexKey.ask ?? 0
        cell.bidLabel.text = currentIndexKey.bid ?? 0
    
        return cell
    }
    

    Playground Output

    Hope this helps

提交回复
热议问题