1

I followed this tutorial on how to add custom info window to a google map marker, in the UIView I've added a button and created an IBAction but when I click on it nothing happen

my infoWindow view code looks like this

.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

and then in my view controller of the main screen and map

-(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;
}

any suggestions?

4

1 回答 1

1

首先,未单击按钮的原因是因为 google-maps 采用 UIView 并将其呈现为 imageView,因此该按钮是图像的一部分,当然不可单击。

解决方案是添加一个 UIView 并自行处理隐藏/显示和定位。而不是使用

  • (UIView *)mapView:(GMSMapView *)p_mapView markerInfoWindow:(GMSMarker *)p_marker

我使用了 didTapMarker 并返回 YES;

于 2013-08-26T01:35:51.330 回答