关于如何将自定义信息窗口添加到谷歌地图标记,我跟着this tutorial, 在UIView中我添加了一个按钮并创建了一个IBAction但是当我点击它时没有任何事情发生
我的infoWindow视图代码如下所示
·H
#import <UIKit/UIKit.h>
#import "Details.h"
@interface MarkerInfoWindowView : UIView
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UIButton *btn1;
- (void) initializeWithDetails:(Details*)p_details;
@end
的.m
#import "MarkerInfoWindowView.h"
@implementation MarkerInfoWindowView
- (void) initializeWithDetails:(Details*)p_details
{
if(self != nil)
{
self.imageView.image = [UIImage imageWithContentsOfFile:p_basicDetails.imageURL];
self.label1.text = p_details.l1;
self.label2.text = p_details.l2;
}
}
-(IBAction) btn1_Clicked:(id)sender
{
NSLog(@"button clicked");
}
@end
然后在我的主屏幕控制器和地图中
-(MarkerInfoWindowView*) customInfoWindow
{
if(_customInfoWindow == nil)
{
_customInfoWindow = [[[NSBundle mainBundle] loadNibNamed:@"MarkerInfoWindowView" owner:self options:nil] objectAtIndex:0];
}
return _customInfoWindow;
}
- (UIView *)mapView:(GMSMapView *)p_mapView markerInfoWindow:(GMSMarker *)p_marker
{
Details* temp = [[Details alloc] init];
temp.l1 = @"L1";
temp.l2 = @"L2";
temp.imageURL = @"someImage.jpg";
[self.customInfoWindow initializeWithDetails:temp];
return self.customInfoWindow;
}
有什么建议吗?
答案 0 :(得分:1)
首先没有点击按钮的原因是因为google-maps采用UIView并将其渲染为imageView,因此该按钮是图像的一部分,当然不可点击。
解决方案是添加一个UIView并自己处理隐藏/显示和定位。 而不是使用
我使用didTapMarker并返回YES;