использование аннотации mapView в tableView - PullRequest
0 голосов
/ 08 мая 2011

Я новичок, но очень усердно работал над созданием этого приложения. Работая от другого вопроса, который я задал: пример кода mapkit и табличного представления - iPhone SDK

Мне удалось собрать (полу) функционирующий вид таблицы и вид карты. Однако я не совсем уверен, как вызывать аннотации вида карты для выполнения numberOfRowsInSection или cellForRowAtIndexPath.

cellForRowAtIndexPath Я уверен, что он не вызывается должным образом, но я думаю, что это комбинация из numberOfRowsInSection и cellForRowAtIndexPath .. Но, честно говоря, я пытался (и терпел неудачу) в течение 3 недель и читал все, что мог, прежде чем задал вопрос.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

//return [[mapView annotations] count];

return 1; }

Итак, я пытался использовать количество аннотаций вида карты, но я даже не уверен, работает ли это.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
    cell =[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]autorelease];
}

NSMutableArray *annotations = [[NSMutableArray alloc] init];
        //i'm sure the entire block below is pretty awful but i'm at a standstill

    for (MapLocation *annotation in [mapView annotations])
    {
        [annotations addObject:annotation];

        cell.textLabel.text = [[annotations objectAtIndex:indexPath.row]title];

    }
return cell; //i'm pretty sure this shouldn't be here

}

Если для объяснения моей ситуации нужен какой-либо другой код, просто дайте мне знать.

1 Ответ

0 голосов
/ 11 мая 2011
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

//return [[mapView annotations] count];

return 20;}

Итак, я знаю, что у меня есть только 20 аннотаций одновременно. Это все еще не идеально, но работает

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
cell =[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:CellIdentifier]autorelease];}

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
    cell =[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]autorelease];
}

NSMutableArray *annotations = [[NSMutableArray alloc] init];

if(indexPath.row < [[mapView annotations] count])
   {

    for (MapLocation *annotation in [mapView annotations])
    {
        [annotations addObject:annotation];

    }
    cell.textLabel.text = [[annotations objectAtIndex:indexPath.row]title];

   }
    return cell;} 

Вид таблицы заполняется информацией аннотации. Я нашел свое решение, наблюдая за курсом UCDavis с Сербаном Порумбеску (он обсуждал таблицы и объекты).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...