Mapkit View 与 tableview 一起

Posted

技术标签:

【中文标题】Mapkit View 与 tableview 一起【英文标题】:Mapkit View with tableview together 【发布时间】:2010-11-17 08:59:38 【问题描述】:

我是 Iphone Dev 的新手,似乎不太了解委托的事情。我们可以将 mapkit 视图和 tableview 放在一个视图中吗?

我搜索了一遍,有人说我们不能在一个视图控制器中使用多个委托。据我所知,mapkit 需要 MKMapViewDelegate 和 tableview 需要 UITableViewDelegate,到目前为止我是对的吗? 那是不是说,我们不能把mapkit和tableview放在一个view里呢?

让我也困惑的事情是,我做了一个简单的应用程序,它同时使用了 textview 和 mapkit。我只将 MKMapViewDelegate 传递给视图控制器。但 textview 还要求委托使用 textFieldShouldReturn 关闭键盘。所以我设法从 IB 文件链接委托,但没有将 UITextFieldDelegate 传递给视图控制器。它有效。 如果我们使用 IB 链接委托或将委托参数传递给视图控制器,有什么区别?

谢谢

【问题讨论】:

【参考方案1】:

视图控制器可以是地图视图和表格视图的委托。通过实现委托协议的方法,一个对象成为一个简单的委托,在本例中为MKMapViewDelegateUITableViewDataSource

一个对象可以实现任意数量的协议。您通过将协议添加到接口来​​告诉编译器实例实现协议:

@interface MyObject : NSObject <UITableViewDataSource, MKMapViewDelegate>

    ...

在 IB 和代码中设置委托之间没有显着的技术差异。我建议在 IB 中设置它们,因为使用 IB 可以减少您编写的代码量,从而降低代码失败的可能性。

【讨论】:

以上是关于Mapkit View 与 tableview 一起的主要内容,如果未能解决你的问题,请参考以下文章

将MapKit注释连接到表视图

CoreData MapKit Swift 3

使用 selectannotation 时 iOS Mapkit 崩溃

如何动态调整tableheaderview的高度

MapKit 自定义注释被添加到地图,但在地图上不可见

如何使用 MapKit 从地图中删除所有注释