我对这个问题真的很困惑。我最近在应用程序中的地图视图选项卡上遇到了问题。甚至到了重新开始的地步。我只是想知道我是否是唯一遇到此问题的人,或者我在这里做错了什么。
我对 iOS 相当陌生,但我知道如何定义地图视图的中心和跨度,以便以用户位置为中心。
我已经在它自己的视图中构建了它,它似乎可以工作,但是当我将它放入选项卡控制器中时......我遇到了问题。地图在显示用户位置的同时保持缩小状态。它应该放大显示用户的位置。
我的地图视图控制器:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.mapView.delegate self];
[self.mapView setShowsUserLocation:YES];
// Do any additional setup after loading the view from its nib.
}
-(void)mapView:(MKMapView *)mapView
didUpdateUserLocation:(MKUserLocation *)userLocation
{
CLLocationCoordinate2D loc = [userLocation coordinate];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 500, 500);
[self.mapView setRegion:region animated:YES];
}
我还认为这可能与我在委托中创建选项卡控制器的方式有关。
我的应用程序委托:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[NWSWelcomeViewController alloc] initWithNibName:@"NWSWelcomeViewController" bundle:nil];
UIViewController *viewController2 = [[NWSMapViewViewController alloc] initWithNibName:@"NWSMapViewViewController" bundle:nil];
// UIViewController *viewController3 = [[NWSSettingsViewController alloc] initWithNibName:@"NWSSettingsViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2, /* viewController3 */];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
我正在为 iOS 5.1 编写,并且使用最新的 Xcode。
是的,我在地图视图上启用了缩放设置。
我只想获取用户位置以将地图视图放大到用户的位置。
这条线在viewDidLoad
:
[self.mapView.delegate self];
什么都不做(它正在尝试发送消息self
to self.mapView.delegate
).
它实际上并没有设置地图视图的delegate
所以didUpdateUserLocation
永远不会被叫到。
你的意思可能是:
[self.mapView setDelegate:self];
or this:
self.mapView.delegate = self;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)