1

我有自定义MKAnnotation实现协议title()方法的地方MKAnnotation。我的要求是只有带有按钮且没有标题的标注。但问题是,只有当我实现 title() 方法时,我才能获得带有标题和按钮的标注。如果返回的字符串为零,我看不到标注气泡。请给我一个解决方案。

4

2 回答 2

1

好吧,它有点骇人听闻,但它确实有效。将标题设置为@“”(空白)只是为了使标注弹出,然后你可以用视图包装你的按钮,并将按钮添加为带有 origin.x 中心的子视图......

MKPinAnnotationView* view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Null"];
view.canShowCallout = YES;
view.clipsToBounds = NO;

UIView * v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];
v.clipsToBounds = NO;
v.autoresizingMask = UIViewAutoresizingFlexibleWidth;

UITextField* field = [[UITextField alloc] initWithFrame:CGRectMake(-42, 0, 100, 30)];
field.textAlignment = NSTextAlignmentCenter;
field.clipsToBounds = NO;
field.autoresizingMask = UIViewAutoresizingFlexibleWidth;
field.delegate = self;
[v addSubview:field];

view.rightCalloutAccessoryView = v;

此示例与 UITextField 一起使用,但它也适用于您的按钮。

于 2014-02-17T17:13:37.203 回答
0

利用 :[YourAnotationView setCanShowCallout:NO];

于 2012-08-09T09:46:29.913 回答