tapOnCalloutAccessoryControl делегиран метод не се извиква при допълнителен изглед докосване в mapbox mapview

Работя върху приложението си с помощта на mapbox sdk(MapBox iOS SDK 1.0. 3) и инсталира рамката, като използва стъпките, описани тук.

Сега, когато добавя анотацията към картата, мога да покажа изгледите на заглавието, подзаглавието, левия/десния аксесоар, но функцията за докосване на изгледа на аксесоара не работи.

Опитах тези решения, както е описано в тези дискусии, но все пак не мога да накарам функцията за докосване да работи върху моя ляв и десен изглед на аксесоари това ме кара да разбирам защо това се случва, тъй като това е само основна функционалност. Прочетох много дискусии в поддръжката на mapbox и опитах повечето от решенията, но без полза.

Моля, помогнете ми къде греша. Разгледах и този проект - "weekend-pics". но не разбирам защо тези два метода -

- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation

и

- (void)tapOnCalloutAccessoryControl:(UIControl *)control forAnnotation:(RMAnnotation *)annotation onMap:(RMMapView *)map

не се извикват директно, напротив, трябва да се извикват, тъй като това са делегирани методи и трябва да се задействат, когато се докосне допълнителен изглед на допълнителното описание.

Опитах да използвам [self mapView:mapView layerForAnnotation:annotations];, след което накарах компилатора да влезе в този метод-

- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation

но въпреки това методът - - (void)tapOnCalloutAccessoryControl:(UIControl *)control forAnnotation:(RMAnnotation *)annotation onMap:(RMMapView *)map не се извиква, когато се опитам да щракна върху изгледа на десния аксесоар на анотацията.

Добавих #import "MapBox/MapBox.h" в моя файл. трябва ли да добавя и друг файл, за да работи тази функционалност? и аз отстраних грешки с помощта на точки на прекъсване, но контролът никога не влиза в тези два метода, както е описано по-горе.

  1. Използвам файла Mbtile и го използвам като офлайн карта в моето приложение.
  2. Xcode5,ios7 Моля, момчета, помогнете ми да разреша този проблем. Благодаря!!

person sac    schedule 19.12.2013    source източник


Отговори (1)


Сигурни ли сте, че настройвате своя mapView.delegate? Това са делегирани методи за обратно извикване. Можете да направите това или в код, или в XIB, ако добавите своя изглед на карта по този начин.

person incanus    schedule 20.12.2013
comment
това беше гаф, който направих в моя код. благодаря за съвета. Вече бях добавил това--› @interface ViewController : UIViewController‹RMMapViewDelegate›, но забравих да добавя this-mapView.delegate=self; в моя файл viewcontroller.m, както казахте от вас. Сега работи като чар. Благодаря много. - person sac; 21.12.2013
comment
Имам още един въпрос в тази връзка - използвам множество mbtile файлове като слой в mapview по подразбиране, сега жестът ми спира да работи на втория слой, който добавям над слоя по подразбиране. Какво трябва да направя за този проблем. Защо се случва това. i прочетох някъде в дискусиите, че mapbox позволява взаимодействие само в един слой наведнъж, но след като добавя слой, как да активирам взаимодействие на нов слой и да спра взаимодействието на слой по подразбиране? моля, насочете ме за това. Благодаря за незабавната ви помощ!! - person sac; 21.12.2013
comment
Еднослойното взаимодействие се отнася до вградено взаимодействие във формат UTFGrid, обикновено кодиран с TileMill, и не се отнася до жестово взаимодействие на нормални UIView обекти. Когато казвате, че вашият жест спира да работи, това означава ли, че просто не се регистрира, или че го прави първоначално и след това започва да има проблеми? Бихте ли предоставили малко повече информация за случващото се? - person incanus; 31.12.2013