- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,当用户点击图钉制作器时,我在 didSelectAnnotationView 中有自定义 View 我正在显示带有 UILabel 和 UIButton 的自定义 View ,一切正常,但 UIButton 不可点击,请告诉我如何解决此问题。
我的代码。
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view1
{
NSString *bult;
if ([view1.annotation isKindOfClass:[MapPin class]]) {
MapPin *annot = view1.annotation;
NSLog(@"tit%@",annot.nsname);
bult=annot.nsname;
}
myview = [[UIView alloc]initWithFrame:CGRectMake(-60, -110, 200, 100)];
myview.layer.cornerRadius = 10;
myview.backgroundColor = [UIColor yellowColor];
myview.userInteractionEnabled = YES;
[view1 addSubview:test];
buldingname = [[UILabel alloc] initWithFrame:CGRectMake(5, -15, 150, 80)];
buldingname.text=bult;
[buldingname setTextColor:[UIColor blackColor]];
[buldingname setBackgroundColor:[UIColor clearColor]];
[buldingname setFont:[UIFont fontWithName: @"Trebuchet MS" size: 14.0f]];
buldingname.lineBreakMode = NSLineBreakByWordWrapping;
buldingname.numberOfLines = 3;
[myview addSubview:buldingname];
moredetail=[UIButton buttonWithType:UIButtonTypeRoundedRect];
moredetail.frame= CGRectMake(0, 55, 200, 50);
[moredetail setTitle:@"Click here for more details" forState:UIControlStateNormal];
[moredetail addTarget:self action:@selector(nextbtn:) forControlEvents:UIControlEventTouchUpInside];
[moredetail setExclusiveTouch:YES];
[myview addSubview:moredetail];
}
我的调用方法。
- (IBAction)nextbtn:(id)sender
{
NSLog(@"click");
}
我已经使用了上面的代码,它不起作用请告诉我我哪里做错了如何解决这个问题。
提前致谢。
最佳答案
它不起作用,因为 mapView 仍在处理触摸事件。只需在以下位置添加一个 DetailView:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
{
return nil;
}
static NSString *reuseIdentifier = @"Your_identifier";
MKAnnotationView *view = [mapView dequeueReusableAnnotationViewWithIdentifier:reuseIdentifier];
if (view == nil)
{
view = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
view.image = [UIImage imageNamed:@"your_annotaion_image.png"];
}
view.canShowCallout = YES;
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside];
view.rightCalloutAccessoryView = rightButton;
UIImageView *icon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"your_icon_image"]];
view.leftCalloutAccessoryView = icon;
return view;
}
然后你可以调用:
-(void)showDetails:(UIButton*)button
{
//do your stuff here
}
完全没有必要自己构建annotation callout view,只需更改默认的设计即可。
关于ios - UIButton 不适用于 didSelectAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384082/
我想在点击注释后使用它。我已经在 Apple 的文档中进行了查找,并且进行了谷歌搜索,但我找不到为什么这与应该如何完成有什么不同。基本上;我没有得到 println("Pin clicked"); 为
我已经在 mapView 上设置了委托(delegate) 我已将 setCanShowCallout: 设置为 YES 来 self 的自定义 MKAnnotationView 的代码: - (id
您好,当用户点击图钉制作器时,我在 didSelectAnnotationView 中有自定义 View 我正在显示带有 UILabel 和 UIButton 的自定义 View ,一切正常,但 UI
尝试让 didSelectAnnotationView 被调用有点令人沮丧.... 我的情况:Using a TabBar Controller, my app switches from INDEX
我使用 MKMapView。在 map 上,我显示了可点击的 AnnotationViews。单击 AnnotationView 后,我将 MyController 推送到 NavigationCon
我已经研究 MKMapView 很长一段时间了,试图更熟悉它,但遇到了一个问题。 我的 MapView 中填充了两个引脚,当我按下它们时,它们有各自的注释。我还有一个按钮,可以将我带到带有 UlLab
我正在开发可在 iPhone、iPad 和 iPod-touch 上运行的通用 ios 应用程序。我有 实现注释代码,选择此注释时,callout 将是 提出。它适用于 iPhone,但 didSel
我是 iPhone 开发新手。我一直在阅读关于如何使谷歌地图注释标注窗口接受换行符的几个问题。我读过的每个教程都要求我触发 mapView:didSelectAnnotationView 方法。但我不
我正在使用 mapView 并尝试在您单击 map 上显示的图钉时弹出标注。 图钉设法放置在正确的位置,所以我认为注释有效,但当我点击图钉时,它不会显示标注。我有显示标注 = 是。 当我单击图钉时,方
我在 map View 中有自定义标记。当用户触摸一个应用程序时,它会移动到另一个页面。如果用户返回 map 并再次触摸相同的项目 - (void)mapView:(MKMapView *)mapVi
我有一个 MKMapView,我在它上面显示一个 MKAnnotaionView。我的问题是当我第一次点击 AnnotationView 时,mapView:didSelectAnnotationVi
我已经在 map 中添加了自定义 View ,当用户点击 map 中的图钉制作器时,它会在图钉制作器的顶部显示 uiview 但问题是当我滚动 map 时,请自定义不随 map 图钉滚动告诉我如何解决
我试图在用户点击图钉时打开详细 View Controller 。 我还定义了一个自定义注释,我想将它的一些信息传递到详细 View Controller 中。它看起来像这样: @interface
我正在构建一个使用内置 map View 的 IOS 应用程序。我成功地放置了自定义注释等。但是,我遇到了按下注释时调用的委托(delegate)函数的问题 (mapView:didSelectAnn
看看这段代码,看看你能不能帮我修复它: - (void)viewDidLoad { //Initialize the array and add annotations for the locatio
我正在为这个问题苦苦挣扎。我有一个 map View ,在一个小区域中有很多图钉。当我长按 map 时,我想忽略 map View 对注释的选择,无论我是否长按注释 View 。似乎注释是在触摸时被选
我在我的应用程序中实现了一个 map View 。 我实现了一个 didselect 注释方法。 在这种方法中,我打开一个弹出窗口。它工作正常。但是当弹出框被关闭并尝试再次单击注释时,则不会调用更多方
我在 MKMapView 上设置了多个注释。我不想在单击图钉时使用 map 注释标注,而是想将 subview (self.detailView) 动画化到屏幕底部,并在未选择任何内容时将其移回。当用
请帮忙。 =) 我在设置标注标题时遇到问题。我从带有谓词的核心数据中接收信息。当我单击 map 上的注释时,我会从我的日志中的图钉接收所有数据。 如何在标注气泡中设置标题? func mapVie
我是一名优秀的程序员,十分优秀!