gpt4 book ai didi

ios - map View :regionDidChangeAnimated: never called

转载 作者:行者123 更新时间:2023-11-28 18:35:53 27 4
gpt4 key购买 nike

在 Storyboard中,我有一个与 View Controller 相关的导航 Controller 。

View Controller 包含一个 MKMapView。

View Controller 在 Identity Inspector -> Custom Class 中也被设置为自定义 Controller :MapViewController。

这是MapViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
#import "MarkerAnnotation.h"
#import "MarkerButton.h"
#import "MainMapView.h"

@interface MapViewController : UITableViewController <MKMapViewDelegate, CLLocationManagerDelegate>

@property (weak, nonatomic) IBOutlet MKMapView *localMapView;

@end

localMapView 通过“Referencing Outlets”链接到 Storyboard上 ViewController 中的 MKMapView,我已经在 .m 文件的代码中使用它来设置注释或获取“bounds.origin”。

每次用户移动 map 时,我都需要运行一些代码来更新 map 。因此,我尝试在 .m 文件上实现 mapView:regionDidChangeAnimated:,但从未调用过。

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSLog(@"Region changed");
}

我尝试创建一个 MKMapView 的自定义子类,在该类上实现该方法,但也没有被调用。 (在.h文件的import中还是可以看到,MainMapView.h……我还是没有删除import)

有什么我想念的吗?我是否必须在 map 和当前类之间设置更多连接?

否则,有没有另一种方法可以在每次 map 移动时触发事件?

最佳答案

当委托(delegate)方法未被调用时,首先要检查对象的 delegate 属性是否已设置或已连接。

(在 .h 文件中声明一个类实现委托(delegate)协议(protocol)不是一回事——这只是让编译器知道应该对类代码实现期望什么,以便它可以提供编译时警告。)

因此,除了引用导出外,您还必须将 map View 的委托(delegate)导出连接到文件所有者或在代码中(通常在 viewDidLoad 中)执行 mapView.delegate = self;

关于ios - map View :regionDidChangeAnimated: never called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19318153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com