1
我需要使用滑块的值更新单元格。滑块从分析的JSON数据中提取数据。如何使用从Swift 3中滑块中选择的JOSN数据更新tableviewcell?
如何将显示JSON数据从滑块添加到tableview单元格?
这里是我当前的代码:
import UIKit
class SliderViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var sliderTableView: UITableView!
@IBOutlet weak var styleSlider: UISlider!
@IBOutlet weak var abvSlider: UISlider!
@IBOutlet weak var ibuSlider: UISlider!
@IBOutlet weak var testLabel: UILabel!
@IBAction func styleSlider(_ sender: Any) {
// LABEL CREATED FOR TESTING PURPOSES ONLY
testLabel.text = String(Int(styleSlider.value))
}
var beersMatch = [Beer]()
var filteredBeersMatch = [Beer]()
var filters = [BeerStyle]()
var selectedCells: [Bool] = []
let apiManager = APIManager()
override func viewDidLoad() {
super.viewDidLoad()
apiManager.TapList { (fetchedBeers) in
self.beersMatch = fetchedBeers
var setFilters = Set<BeerStyle>()
for beer in fetchedBeers {
setFilters.insert(beer.StyleName)
}
self.filters = Array(setFilters)
DispatchQueue.main.async {
self.sliderTableView.reloadData()
}
}
}
// MARK: Table view data source
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
-> Int {
return filteredJsonMatch.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
-> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier:
"SliderListCell") as? SliderTableViewCell else {
return UITableViewCell()
}
// MARK: Beer name
let beers = filteredJsonMatch[indexPath.row]
cell.sliderMatchLabel.text = beers.BrewName
cell.sliderMatchName.text = beers.BevName
cell.sliderMatchRowNumber.text = jsons.DisplayName
if let IBU = beers.Ibu {
cell.sliderMatchIBU.text = "\(IBU) IBU"
}
if let ABV = beers.Abv {
cell.sliderMatchABV.text = "\(ABV)%"
}
cell.sliderMatchJsonType.text = jsons.StyleName.name
cell.sliderMatchLocation.text = jsons.Location
cell.sliderMatchKegImage.image = jsons.kegPercentageFull()
// MARK: Download image
jsons.downloadImage { (jsonImage) in
DispatchQueue.main.async {
cell.sliderMatchImage.image = jsonImage
}
}
return cell
}