在 tableView 中使用 mapView 注释

发布于 2024-11-06 01:43:20 字数 1472 浏览 1 评论 0原文

我是一个初学者,但一直在努力构建这个应用程序。从我问的另一个问题开始: mapkit 和表视图示例代码 - iPhone SDK

我能够将(半)功能的表格视图和地图视图放在一起。但是,我不太确定如何调用mapview注释来执行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

如果需要任何其他代码来帮助解释我的情况,请告诉我

I'm a beginner but have been working really hard to build this application. Working from another question I asked: mapkit and table view sample code - iPhone SDK

I was able to put together a (semi-)functioning tableview and mapview. However, I'm not really sure how to call the mapview annotations to do numberOfRowsInSection or cellForRowAtIndexPath.

the cellForRowAtIndexPath I'm sure isn't called properly but I'm thinking its a combo of both numberOfRowsInSection and cellForRowAtIndexPath.. But honestly I've been trying (and failing) for 3 weeks and reading all I can before I asked the question.

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

//return [[mapView annotations] count];

return 1; }

So I was trying to use the count of the mapview annotations but I'm not even sure if this is working.

-(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

}

If any other code is needed to help explain my situation just let me know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离线来电— 2024-11-13 01:43:20
- (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;} 

表视图中填充了注释信息。我通过观看 Serban Porumbescu 的 UCDavis 课程(他正在讨论表格视图和对象)找到了解决方案。

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

//return [[mapView annotations] count];

return 20;}

So I know that I only have 20 annotations at a time. This is still not ideal but it works

-(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;} 

The tableview is populated with the annotation information. I found my solution by watching the UCDavis course with Serban Porumbescu (he was discussing tableviews and objects).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文