我试图找出如何在UITableView中使用静态第一个单元格,然后为其余单元格生成动态结果。
更具体地说,我使用的是Google SDK,当用户在UISearchBar中键入地址或位置时,会在下面的UITableView中生成自动完成功能。我希望搜索栏下的第一个单元格保持静止,并说“当前位置”#34;然后是自动完成结果。
我尝试使用类似于概述here的方法。我无法弄清楚如何使其工作,因为这会使从Google自动填充返回的索引超出范围。
以下是我一直在努力尝试的一般方法:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.searchResultsGoogle.count + 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier", forIndexPath: indexPath)
if indexPath.row == 0 {
let cell = self.tableView.dequeueReusableCellWithIdentifier("cellIdentifier", forIndexPath: indexPath)
cell.textLabel?.text = "Current Location"
cell.textLabel?.textColor = UIColor(red: 14/255, green: 122/255, blue: 254/255, alpha: 1)
return cell
}
else {
let cell1 = self.tableView.dequeueReusableCellWithIdentifier("cellIdentifier", forIndexPath: indexPath)
cell1.textLabel?.text = self.searchResultsGoogle[indexPath.row]
return cell1
}
}
有关如何解决此问题的任何想法?谢谢!
答案 0 :(得分:0)
改变这个:
cell1.textLabel?.text = self.searchResultsGoogle[indexPath.row]
为:
cell1.textLabel?.text = self.searchResultsGoogle[indexPath.row - 1]
这将调整行索引以考虑固定行。
更好的解决方案可能是使用单独的部分。将第0部分中的固定行和第1部分中的实际数据放在一起。
BTW - 由于细胞重用,您还有另一个问题。您需要重置其他行的文本颜色。否则,当您滚动表格视图时,某些行将显示错误的颜色。