UITableView indexPath.row 不增加
Posted
技术标签:
【中文标题】UITableView indexPath.row 不增加【英文标题】:UITableView indexPath.row not increasing 【发布时间】:2017-06-24 04:09:02 【问题描述】:我正在将数据加载到 UITableView 中。
中的前 10 个单元格的第一次加载正确发生func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
indexPath.row 正确递增并将数据从数据源加载到正确的单元格中。然后,当到达表格底部时,我执行了更多负载。现在调用了 func tableView 但它卡在 indexPath.row = 9 处。我在
中实现了一个检查器func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
而且似乎添加了正确的行数。
编辑:我的第二个 uitableview 有问题(这个场景中有两个)检查器是一个打印语句,它被调用并返回正确的 uitableView,这发生在 tableView 卡在相同的值之前。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
if tableView == self.table
return users2.count
else
print("married barry", tableFeedCount)
return tableFeedCount
【问题讨论】:
您的“检查器”代码是什么样的? 【参考方案1】:尝试以下操作:
声明布尔值
let boolNotMoreData : Bool = true
将新数据附加到您的数据源
let arrResponse: [Any]? = (responseObject["news"] as? [Any])
if arrResponse?.count == 0
boolNotMoreData = false;
for dictResponse in arrResponse as! [[String: Any]]
self.arrDataSource.append(NewsClass(responseDict: dictResponse))
self.tblViewNews?.reloadData()
现在获取新数据
private func tableView(_ tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAt indexPath: IndexPath)
if indexPath.row == arrNews.count - 1
if boolNotMoreData
currentPage += 1
getYourData()
【讨论】:
【参考方案2】:这很成功
@IBOutlet weak var Submitted: UITableView!
@IBOutlet weak var ViewAssigenment: UITableView!
var Arrayone:[String] = []
var ArrayTwo:[String] = []
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
var count:Int?
if tableView == self.ViewAssigenment
count = Arrayone.count
else if tableView == self.Submitted
count = ArrayTwo.count
return count!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
if tableView == self.ViewAssigenment
let cell = tableView.dequeueReusableCell(withIdentifier: "ViewCell") as!
ViewAssigenmentTableViewCell
let obj =Arrayone[indexPath.row]
cell.lblTitle.text = obj.AssTitle
return cell
else
let cell1 = tableView.dequeueReusableCell(withIdentifier: "Submittcell") as! SubmittedAssigenmentTableViewCell
let obj2 = ArrayTwo[indexPath.row]
cell1.lbltitle.text = obj2.AssTitle
return cell1
【讨论】:
以上是关于UITableView indexPath.row 不增加的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableView 中获取选定的 indexPath.section 和 indexPath.row 值?
UITableView 的 indexPathForCell:总是返回 0 作为 indexPath.row
在 xcode 8 beta 6 的 UITableView 中使用 indexPath.row 将无法编译
UITableView / indexPath.row:为什么if语句排除第10行?