当我调用 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实现