加载表视图数据
Loading tableview data
我在table查看数据的引入和修复 当x等于1时会引入数据,等于2时会传入修复数据,但是当我是空白的table 视图执行后,我的委托和数据源有一个 link
这是我的下载数据功能:
func laodingTableviewData() {
self.suggestionTableView.isHidden = true
let frame = CGRect(x: 150, y: 283, width: 80, height: 80)
let color = UIColor(red: 50.0/255.0, green: 124.0/255.0, blue: 203.0/255.0, alpha: 1)
let activityIndicatorView = NVActivityIndicatorView(frame: frame, type: .ballSpinFadeLoader, color: color, padding: 20)
self.view.addSubview(activityIndicatorView)
activityIndicatorView.startAnimating()
if self.x == 1 {
DispatchQueue.main.async {
print("Start download suggestion data...")
self.suggestions = Suggestion.downloadAllSuggestion()
self.suggestionTableView.isHidden = false
self.suggestionTableView.reloadData()
}
} else if self.y == 2 {
DispatchQueue.main.async {
print("Start download repair data...")
self.repairs = Repair.downloadAllRepair()
self.suggestionTableView.isHidden = false
self.suggestionTableView.reloadData()
}
}
activityIndicatorView.stopAnimating()
}
我在self.suggestions = advice.downloadAllSuggestion ()
下了断点,肯定抓到数据了,但是在table视图中显示不出来,请帮忙解答,谢谢!
这里是table视图函数
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "mycell", for: indexPath) as! FirstTableViewCell
if x == 1 {
cell.suggestions = suggestions[indexPath.row]
} else if y == 2 {
cell.repairs = repairs[indexPath.row]
}
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var value = 0
switch value {
case self.x:
value = suggestions.count
case self.y:
value = repairs.count
default:
break
}
return value
}
在numberOfRowsInSection
中,值初始化为0。
并传递给 switch case。它总是会默认。所以 numberOfRowsInSection
总是返回 0
你的函数应该是这样的。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var value = 0
if self.x == 1 {
value = suggestions.count
} else if self.y == 2 {
value = repairs.count
}
return value
}
据我了解,您是根据 x 和 y 值有条件地绑定数据。您的 numberOfRowsInSection
方法也应该反映相同。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if x == 1 {
return suggestions.count
} else if y == 2 {
return repairs.count
}
return 0
}
希望对您有所帮助。编码愉快!!
我在table查看数据的引入和修复 当x等于1时会引入数据,等于2时会传入修复数据,但是当我是空白的table 视图执行后,我的委托和数据源有一个 link
这是我的下载数据功能:
func laodingTableviewData() {
self.suggestionTableView.isHidden = true
let frame = CGRect(x: 150, y: 283, width: 80, height: 80)
let color = UIColor(red: 50.0/255.0, green: 124.0/255.0, blue: 203.0/255.0, alpha: 1)
let activityIndicatorView = NVActivityIndicatorView(frame: frame, type: .ballSpinFadeLoader, color: color, padding: 20)
self.view.addSubview(activityIndicatorView)
activityIndicatorView.startAnimating()
if self.x == 1 {
DispatchQueue.main.async {
print("Start download suggestion data...")
self.suggestions = Suggestion.downloadAllSuggestion()
self.suggestionTableView.isHidden = false
self.suggestionTableView.reloadData()
}
} else if self.y == 2 {
DispatchQueue.main.async {
print("Start download repair data...")
self.repairs = Repair.downloadAllRepair()
self.suggestionTableView.isHidden = false
self.suggestionTableView.reloadData()
}
}
activityIndicatorView.stopAnimating()
}
我在self.suggestions = advice.downloadAllSuggestion ()
下了断点,肯定抓到数据了,但是在table视图中显示不出来,请帮忙解答,谢谢!
这里是table视图函数
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "mycell", for: indexPath) as! FirstTableViewCell
if x == 1 {
cell.suggestions = suggestions[indexPath.row]
} else if y == 2 {
cell.repairs = repairs[indexPath.row]
}
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var value = 0
switch value {
case self.x:
value = suggestions.count
case self.y:
value = repairs.count
default:
break
}
return value
}
在numberOfRowsInSection
中,值初始化为0。
并传递给 switch case。它总是会默认。所以 numberOfRowsInSection
总是返回 0
你的函数应该是这样的。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var value = 0
if self.x == 1 {
value = suggestions.count
} else if self.y == 2 {
value = repairs.count
}
return value
}
据我了解,您是根据 x 和 y 值有条件地绑定数据。您的 numberOfRowsInSection
方法也应该反映相同。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if x == 1 {
return suggestions.count
} else if y == 2 {
return repairs.count
}
return 0
}
希望对您有所帮助。编码愉快!!