gpt4 book ai didi

ios - 如何在 InfoWindow 中包含一个按钮

转载 作者:行者123 更新时间:2023-11-29 13:08:09 25 4
gpt4 key购买 nike

我关注了this tutorial关于如何将自定义信息窗口添加到谷歌地图标记,在 UIView 中我添加了一个按钮并创建了一个 IBAction 但是当我点击它时没有任何反应

我的 infoWindow View 代码如下所示

.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

然后在主屏幕和 map 的 View Controller 中

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

有什么建议吗?

最佳答案

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

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

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

我使用了 didTapMarker 并返回了 YES;

关于ios - 如何在 InfoWindow 中包含一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com