带有 Google SDK 的 UITableView 静态第一个单元格

Posted

技术标签:

【中文标题】带有 Google SDK 的 UITableView 静态第一个单元格【英文标题】:UITableView Static First Cell with Google SDK 【发布时间】:2016-04-25 23:13:33 【问题描述】:

我试图弄清楚如何在 UITableView 中拥有一个静态的第一个单元格,然后为其余单元格提供动态结果。

更具体地说,我使用的是 Google SDK,当用户在 UISearchBar 中输入地址或位置时,会在下面的 UITableView 中自动完成。我希望搜索栏下的第一个单元格保持静态并显示“当前位置”,然后在其下方显示自动完成结果。

我尝试使用类似于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
    


关于如何解决这个问题的任何想法?谢谢!

【问题讨论】:

静态第一个单元格: 1. 创建一个“CustomTableViewCell”类型的属性,使这个自定义单元格包含一个搜索栏。 2.初始化这个单元格你的init方法,把这个单元格添加到字典中,然后当你在索引路径中点击单元格时“行是第一行”,只返回这个静态单元格,所以使用if/then ,一切都很简单 【参考方案1】:

改变这个:

cell1.textLabel?.text = self.searchResultsGoogle[indexPath.row]

到:

cell1.textLabel?.text = self.searchResultsGoogle[indexPath.row - 1]

这将调整行索引以考虑固定行。

更好的解决方案可能是使用单独的部分。将固定行放在第 0 节中,将您的实际数据放在第 1 节中。

顺便说一句 - 由于单元重用,您还有另一个问题。您需要重置其他行的文本颜色。否则,当您滚动表格视图时,某些行会显示错误的颜色。

【讨论】:

是的!感谢您分享您美丽的大脑。关于表格中的部分的好点。我需要更多地了解它才能使用它。仅供参考,对于字体颜色,我故意希望静态单元格为不同的颜色,以便脱颖而出。感谢您毫不犹豫地指出来! 你错过了我关于单元格颜色的观点。可以为静态单元格使用不同的颜色。但是您还需要重置非静态单元格的颜色。如果你不这样做,当用户滚动表格视图时,你会看到静态单元格的颜色出现在你不希望它出现的地方。 知道了。感谢您的澄清!

以上是关于带有 Google SDK 的 UITableView 静态第一个单元格的主要内容,如果未能解决你的问题,请参考以下文章

带有 Google SDK 的 UITableView 静态第一个单元格

无法使用带有 IDFA 的 Google Analytics iOS SDK 验证人口统计报告的跟踪代码

带有适用于 iOS 的 Google Maps SDK 的可拖动标记

带有 Google PHP SDK 的 YouTube API - 以 JSON 格式响应

无法将带有 google maps sdk 的项目上传到 iTunes Connect。 Xcode 7.0

在 Mac OS X 10.6 上使用带有 Python 2.7 的 Google App Engine SDK