当我调用 setCoordinate 时,MKMapView 没有更新

Posted

技术标签:

【中文标题】当我调用 setCoordinate 时,MKMapView 没有更新【英文标题】:MKMapView not updating when i call setCoordinate 【发布时间】:2011-06-04 00:34:09 【问题描述】:

这是我今天的第二个问题,第一个问题非常愚蠢,所以我完全期待这个问题也是如此。

我有一个带有嵌入式 MKMapView 的视图。

我想知道如何才能获得这个 MKMapView?我可以在 xib 文件中以某种方式连接它吗?或者失败了......我可以直接从父视图控制器中提取它吗?

我想做一些事情,比如使用 setCoordinates,但我不知道如何获取 MKMapView 实例来调用函数。

我如何获得 MKMapView 对象。

【问题讨论】:

【参考方案1】:

在你想去的地方,设置一个插座。在 .h 文件中,声明一个 mapview 属性

MKMapView *mapView;

然后用IBOutlet声明它的属性

@property (nonatomic, retain) IBOutlet MKMapView *mapView;

您应该能够从 IB 文件中的 File's Owner 控制拖动到视图中的 mapview 以建立连接。在出现的弹出窗口中选择“mapView”,您的文件将连接到 mapview 对象。然后,您可以使用 .m 文件中的属性mapView 在地图视图上进行设置。

[self.mapView setCoordinates:myCoordinates];

确保您也正确导入框架。

【讨论】:

抱歉回复缓慢。我有一段时间没有机会回到 iPhone 上。你是完全正确的。我不知道你可以从文件的所有者那里得到对象。我正在尝试相反的方式!干杯! 很高兴它成功了。实际上,您也可以以其他方式拖动它(从对象到文件所有者)以执行操作。一个示例是 UIButton 操作。【参考方案2】:

听起来您正在使用 Interface Builder 来显示此 MKMapView。为了能够获取屏幕上的 MKMapView 实例,请按照以下步骤操作。

1) 打开包含 MKMapView 的视图的视图控制器的 .h 文件。

2) 在实例变量部分,添加一行

IBOutlet MKMapView *mapView;

3) 返回界面生成器,然后单击您添加到 XIB 的地图视图

4) 按下 Control 并按住它并在地图视图上单击并拖动。这应该会使一条蓝线从地图视图上的位置跟随您的鼠标。

5) 将蓝线拖到 XIB 中的对象列表上。对于普通的视图控制器 xib,此列表应该类似于 File's Owner。第一响应者和视图。取消单击“文件所有者”对象。

6) 这应该会显示一个连接列表。点击显示“mapView”的那个

7) 利润!现在在视图控制器内部,您可以使用 mapView 实例变量访问地图视图的实例。

【讨论】:

【参考方案3】:

确保您为 MKMapView 设置了委托方法,并且这些方法应该在您的委托类上触发。

【讨论】:

以上是关于当我调用 setCoordinate 时,MKMapView 没有更新的主要内容,如果未能解决你的问题,请参考以下文章

可拖动的 MKPinAnnotationView 不起作用。 draggable = YES,callout有title和subtitle,setCoordinate实现

java中关于矩形类

地图地位

当我尝试一个接一个地调用我注册的协议时,只有一个可以随机调用

当我调用 fseek() 时,在低级别会发生啥?

当我调用一个简单的函数时,析构函数被调用