菜鸟教程小白 发表于 2022-12-13 10:05:36

ios - 将披露指示器添加到 map 引脚 iOS 5


                                            <p><p>我似乎无法在我的 map 注释中添加披露按钮。</p>

<p>我也为我的 ViewController 实现了 MKMapViewDelegate。我错过了什么?</p>

<pre><code>- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id &lt;MKAnnotation&gt;)annotation
{
    MKPinAnnotationView *mapPin = nil;
    if(annotation != map.userLocation)
    {
      static NSString *defaultPinID = @&#34;defaultPin&#34;;
      mapPin = (MKPinAnnotationView *);
      if (mapPin == nil )
            mapPin = [ initWithAnnotation:annotation reuseIdentifier:defaultPinID];

      mapPin.canShowCallout = YES;
      UIButton *infoButton = ;
      mapPin.rightCalloutAccessoryView = infoButton;

    }
    return mapPin;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>该代码应该可以工作,但请检查以下内容:</p>

<ul>
<li>是否设置了 mapView 的 <code>delegate</code> 属性?声明 ViewController 实现 <code>MKMapViewDelegate</code> 协议(protocol)实际上并没有告诉 mapView 哪个对象正在实现委托(delegate)方法。在代码中,执行 <code>map.delegate = self;</code> 或在 IB 中将 <code>delegate</code> 导出连接到文件的所有者。</li>
<li>注释的 <code>title</code> 属性是否设置为非空白?如果 <code>title</code> 为空白,则不会显示标注。</li>
</ul>

<p>同样,不相关,但是,当 dequeue 返回注解 View 时,您应该将其 <code>annotation</code> 属性更新为当前注解(它之前可能已用于另一个注解)。此外,除非您使用 ARC,否则您还应该 <code>autorelease</code>View 。</p>

<pre><code>- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id &lt;MKAnnotation&gt;)annotation
{
    MKPinAnnotationView *mapPin = nil;
    if(annotation != map.userLocation)
    {
      static NSString *defaultPinID = @&#34;defaultPin&#34;;
      mapPin = (MKPinAnnotationView *);
      if (mapPin == nil )
      {
            mapPin = [[ initWithAnnotation:annotation
                         reuseIdentifier:defaultPinID] autorelease];
            mapPin.canShowCallout = YES;
            UIButton *infoButton = ;
            mapPin.rightCalloutAccessoryView = infoButton;
      }
      else
            mapPin.annotation = annotation;

    }
    return mapPin;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 将披露指示器添加到 map 引脚 iOS 5,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/8330638/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/8330638/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 将披露指示器添加到 map 引脚 iOS 5