- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试完成 cs193p ( link ) 作业 5 的最后一部分
该应用程序从 Flickr 中选择热门地点,并将这些地点的照片绘制在 map 上。
任务 5c 说
Each annotation on the map should have a callout which displays the following: c. A disclosure button which brings up the full image of the chosen photo (exactly as if the user had chosen the photo from a table) or which brings up a list of photos in that place (again, exactly as if the user had chosen that place from a table).
我已经完成了前面显示标注的部分,并将缩略图加载到标注中。
我已经将我的 mapViewController 设置为 mapView 的委托(delegate),并且我知道它正在工作,因为当我单击图钉时,它会调用 didSelectAnnotationView 方法,该方法也在我的 mapViewController 中并且一切正常,并且实际上在标注中显示披露附件。
但是,我还定义了 calloutAccessoryControlTapped 方法(同一 VC),但该方法未被调用。完全没有。目前我那里只有一个 NSLog,但什么也没有出现。
好吧,我什么也没说,只是为了让它更奇怪,有一个注解适用于数百个注解。
最开始的一个注解触发了按钮,但没有其他的。是因为它是第一个注释吗?按钮只是为此而触发吗?
我想发布代码,但不确定它的相关性:
@interface flickrthingMapViewController ()<MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapview;
@end
@implementation flickrthingMapViewController
@synthesize delegate = _delegate;
@synthesize mapview = _mapview;
@synthesize annotations = _annotations;
- (void)viewDidLoad
{
[super viewDidLoad];
self.mapview.delegate = self; //remembered to set the delegate
}
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView
{
if (![aView.annotation isKindOfClass:[flickrthingPlaceAnnotation class]])
{
UIImage *image = [self.delegate flickrthingMapViewContoller:self imageForAnnotation:aView.annotation];
[(UIImageView *)aView.leftCalloutAccessoryView setImage:image];
}
UIButton *buttonToViewDetails = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
aView.rightCalloutAccessoryView=buttonToViewDetails;
}
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)aView calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"hello");
}
我问过的所有其他问题都证明我做了一些愚蠢的事情,我希望这里也是如此。但是我已经坐着看着它很久了,却看不到它!
感谢您的见解!
最佳答案
事实证明,在 didSelectAnnotationView 中添加按钮为时已晚!
我以为我试图通过不创建按钮来提高效率,除非有人实际选择了注释,但事实证明(出于某种原因?)如果按钮是在 didSelectAnnotationView 中创建的,它不会触发委托(delegate)方法。
我已将它移到 viewForAnnotation 方法中并且它起作用了!
关于objective-c - 未调用 mkmapview 委托(delegate)方法 -calloutaccessorycontroltapped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657506/
我在我的应用程序中使用了这个例子, http://spitzkoff.com/craig/?p=81 但它不会在我点击附件控件时调用/触发 calloutAccessoryControlTapped。
当用户点击 map 注释中的标注时,我正在尝试打开详细 View Controller 。 我创建了一个名为 myAnnotation 的自定义注释子类,并在其中包含了一个名为 idEmpresa 的
我正在开发一个带有 map 的项目,有一些注释的 View 有一个详细信息按钮。 这些注释是在 for 循环中创建的,我在该循环中获取 JSON 格式的数据,并为每个元素创建一个注释。然而,Annot
我在 map 上有一个 MKMapView 和一些标记。当用户点击标记时,MKAnnotationView 会显示一个 title 和一个 UIButtonTypeDetailDisclosure 类
我有一个包含 MKMapView 的 View ,我在其中显示了几个引脚: - (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForA
当点击附件按钮时,我需要传递 itemId,这样我就可以识别要传递到我的详细 View 的项目。 到目前为止: 添加注释: for (id row in self.detailItem) {
class MapViewController: UIViewController, MKMapViewDelegate, HomeModelProtocol { var feedItems: NSA
在此方法之后,我尝试将 nsmutablearray 从一个导航嵌入式 View Controller 发送到另一个 View Controller - (void)mapView:(MKMapVie
我正在 Xcode (objective-c) 中开发一个应用程序。我的应用程序有一个带有餐厅列表的 TableView,当您按一行时,会打开另一个包含餐厅信息的 View 。我使用的方法是将行中的标
我正在尝试执行通过 MKAnnotation 传递自定义属性 (placeId) 的简单功能。我已经使用名为“MapViewAnnotation”的自定义类设置了所有内容。 我只想在用户激活 Call
我的 calloutAccessoryControlTapped 当我点击注释 View 和 this behavior it's right 时也会被调用.但是我如何检测用户是否点击了正确的附件 V
我在我的应用程序中使用 Storyboard。我有一个带注释的 MKMapView。我已经实现了 calloutAccessoryControlTapped 方法,并希望在用户点击 UIButtonT
我正在开发一个新的应用程序。我还使用了 MapKitView 并放置了一些图钉。我有一个 id 数组,但我无法单独访问该引脚的 id,你能帮助我吗?提前致谢... 最佳答案 为此,您必须使用 pin
我正在使用 didSelectRowAtIndexPath: 将一些数据从表 vc 传递到详细 vc,使用下面的代码可以正常工作。 我想做的是从 map callOutAccessoryControl
我有这个问题: 在我的应用程序中,我使用这个非常简单的代码: - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView
我试图在调用附件控件被点击后简单地将 detailViewController 的标题设置为图钉的标题。 这里是我设置 MKAnnotation 的地方: - (MKAnnotationView *)
我的 View Controller 上有一张 map ,我不知道为什么,但是当我点击注释 View 时,委托(delegate) calloutAccessoryControlTapped 也会被调
我想检测 rightCalloutAccessoryView 是否已通过下面的委托(delegate)方法被点击,我该怎么做? - (void)mapView:(MKMapView *)mapView
我正在尝试将我的一个应用程序更新到 iOS7。问题是,在我的 MKMapView 上,当我点击图钉时,它会显示 Callout,但是当点击 rightCalloutAccessoryView 时,它不
我正在尝试完成 cs193p ( link ) 作业 5 的最后一部分 该应用程序从 Flickr 中选择热门地点,并将这些地点的照片绘制在 map 上。 任务 5c 说 Each annotatio
我是一名优秀的程序员,十分优秀!