如何在 tableViewCell、Google 地图、Swift 中添加从地图中选择的选项

Posted

技术标签:

【中文标题】如何在 tableViewCell、Google 地图、Swift 中添加从地图中选择的选项【英文标题】:How to add select from map option in tableViewCell, Google map, Swift 【发布时间】:2017-12-11 04:31:15 【问题描述】:

我在当前项目中使用谷歌地图。要在我单击 textField 时搜索位置,tableView 会出现在下方,并且我正在使用 GMSAutocompletePrediction 对象填充单元格。到目前为止,它工作正常,到目前为止没有问题。现在我想添加一个像“从地图中选择”这样的单元格,当有人点击一个单元格时,地图中就会出现一个标记。我可以放置标记和附加地图功能,但如何添加最后一个单元格“从地图中选择”?我的代码如下:

 var myFilterPredictions = [GMSAutocompletePrediction]()

然后:

  func didAutocomplete(with predictions: [GMSAutocompletePrediction]) 
    self.myFilterPredictions.removeAll()
    print("GMSAutocompletePrediction *********")

    for i in predictions 
       self.myFilterPredictions.append(i)
    

    tableView.reloadData()

填充tableView

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return myFilterPredictions.count


 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

    let cell = UITableViewCell(style:.subtitle, reuseIdentifier:"searchCell")

    let predictions = myFilterPredictions[indexPath.row]
    cell.textLabel?.attributedText = predictions.attributedPrimaryText
    cell.detailTextLabel?.attributedText = predictions.attributedFullText
    return cell


我的搜索结果类似于下图: 我想在最后一个单元格中添加“从地图中选择”。

【问题讨论】:

尝试将footer 添加到tableview。此 URL 将有所帮助:***.com/questions/38178509/… 不,那不是我想要的,我想要 tableViewCell 你的意思是,你想在tableviewcell中显示地图,对吧? @SagarSukode 不,这不是我想要的,我想添加一个名为“从地图中选择”的单元格,当我点击它时,我将在地图上显示一个标记。我可以显示标记,但我不能将最后一个单元格设置为“从地图中选择”。 @ArafinRussell 然后为“从地图中选择”添加一个自定义单元格,并在点击时执行所需的功能(即:didSelectRowAt)。 【参考方案1】:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    if section == 0
        return myFilterPredictions.count
    
    else
        return 1
    


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    var cell = UITableViewCell()
    if indexPath.section == 1
        cell.textLabel = ""Select From Map""
        return cell
    else
        cell = UITableViewCell(style:.subtitle, reuseIdentifier:"searchCell")
        let predictions = myFilterPredictions[indexPath.row]
        cell.textLabel?.attributedText = predictions.attributedPrimaryText
        cell.detailTextLabel?.attributedText = predictions.attributedFullText
        return cell
    

您还为此使用 Group 表

func numberOfSections(in tableView: UITableView) -> Int 
    return 2


func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
    // Removes extra padding in Grouped style
    return CGFloat.leastNormalMagnitude


func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat 
    // Removes extra padding in Grouped style
    return CGFloat.leastNormalMagnitude

【讨论】:

请试试这个,实际上我用搜索银行名称做了一次 这就是我正在寻找的简单解决方案,谢谢你的朋友:) 知道@kiran 了吗?

以上是关于如何在 tableViewCell、Google 地图、Swift 中添加从地图中选择的选项的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个 TableViewcell 的不同部分有不同的图像,将集合视图放置在 tableviewCell 内

Self Sizing CollectionView 在 Self Sizing TableViewCell 内

MVVMCross iOS如何在TableViewCell按钮中传递参数

如何在 tableviewcell 中获取 indexpath uitextfield?

如何在 TableViewCell 中为 collectionView 异步下载图像?

如何在swift中将标题视图添加到每个自定义tableViewCells