路线我与UIButtonTypeDetailDisclosure-Button标记标签 - 按钮不clickabel
我有一个路由我框架和标记标签的问题。我现在正在尝试约5个小时,但没有运气,几乎在网上搜索了关于这个问题的所有论坛主题。 我想添加一个带有UIButtonTypeDetailDisclosure-Button的标记标签。 当我将按钮添加到应该是标签的UIView时,我无法点击按钮。路线我与UIButtonTypeDetailDisclosure-Button标记标签 - 按钮不clickabel
我的代码如下:
- (void)tapOnMarker:(RMMarker*)marker onMap:(RMMapView*)map {
UIView *frame = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
button.frame = CGRectMake(0, 0, 34, 34);
button.enabled = YES;
button.userInteractionEnabled = YES;
[button addTarget:self action:@selector(markerLabelButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[frame addSubview:button];
[marker setLabel:frame];
[marker showLabel];
}
-(void)markerLabelButtonPressed:(id)sender {
NSLog(@"pressed");
}
我希望有人可以帮助我。谢谢:)
我你需要任何更多的信息,请让我知道!
好吧,终于我设法解决了这个问题。 也许这是一个有点脏的解决方法,但无论如何,它的工作;)
我修改了路线,我的框架,并增加了一个名为方法
- (void) tapOnLabelForMarker: (RMMarker*) marker onMap: (RMMapView*) map onLayer:(CALayer *)layer;
在RMMapView.m我加在584线以下几行:
else if ([superlayer superlayer] != nil && [[[superlayer superlayer] superlayer] isKindOfClass: [RMMarker class]]) {
if (_delegateHasTapOnLabelForMarker) {
[delegate tapOnLabelForMarker:(RMMarker*)[[superlayer superlayer] superlayer] onMap:self onLayer:superlayer];
}
}
现在然后揭示按钮是这个部分的代码被执行和我的方法被调用。 当标记标签的任何其它区域被轻敲
- (void) tapOnLabelForMarker: (RMMarker*) marker onMap: (RMMapView*) map;
方法被调用。
希望这有助于其他人;)
看看这个线程在谷歌路线组列表: http://groups.google.com/group/route-me-map/browse_thread/thread/343cb3ebfd9480e3
有人回答为标志的“气球”标签的一些代码,使用一个关闭按钮。
感谢您的回答,我试着创建我的标记的代码,但我的Disclosurebutton仍然不可点击。 - .-任何其他想法? – 2011-05-12 06:18:54
我遇到了麻烦,这个解决方案,我不希望这些人谁告诉你,做不同的,因为你可以有很好的事业做的事情之一你做他们的方式。
我采取了这种初始方法,然后通过另一个线程,我意识到:如果我只想一次有一个标注,我可以管理他作为mapView的子视图,并使用mapView.markerManager的帮助器方法。 RMMarker对象有一个数据指针,您可以使用它来填充您的标注泡泡的内容。
这节省了我很多时间,我有一个令人满意的解决方案,根本不会弄脏。
我刚刚为此提交了一个请求。 https://github.com/route-me/route-me/pull/161 – 2012-01-27 21:13:24
我想在我的项目中实现thins,你必须遵守什么委托才能使用ontapmarker方法? – 2013-11-08 11:00:48