美文网首页
增加大头针视图点击响应区域

增加大头针视图点击响应区域

作者: 4VZhang | 来源:发表于2018-12-05 11:48 被阅读9次
网络请求回来的大头针视图的坐标、title、subtitle以及其他相关信息如何与指定的大头针视图绑定?
viewcontroller.m
- (void)viewDidLoad {
        // 网络请求返回的标注的模型数据
        DataM *dataM;
        CustomAnno *pointAnnotation = [[CustomAnno alloc] init];
        pointAnnotation.dataM = dataM;
        [self.mapView addAnnotation:pointAnnotation];
}


// 根据anntation生成对应的View
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation {
    if ([annotation isKindOfClass:[MAPointAnnotation class]]) {
        MAPinAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"reuseID"];
        if (annotationView == nil) {
            annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"reuseID"];
        }
         CustomAnno *anno = (CustomAnno *)annotation;
        annotationView.image = [self getAnnotationViewNorImageWithAnno:anno];
        return annotationView;
    }
    return nil;
}

- (MAMapView *)mapView {
    if (!_mapView) {
        ///初始化地图
        _mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
        _mapView.delegate = self;
    }
    return _mapView;
}
.h

#import <MAMapKit/MAMapKit.h>
@class ListDataM;
@interface CustomAnno : MAPointAnnotation
/** model  */
@property (nonatomic, strong)  ListDataM *dataM;
@end

.m

#import "CustomAnno.h"
@implementation CustomAnno
- (void)setDataM:(ListDataM *)dataM {
        _dataM = dataM;
        NSNumber *latitude = dataM.latitude;
        NSNumber *longitude = dataM.longitude;
        self.coordinate = CLLocationCoordinate2DMake(latitude.doubleValue ,longitude.doubleValue );
        self..title = dataM.title;
        self..subtitle = dataM.subtitle];
}
@end

使用系统提供的MAPinAnnotationView生成的大头针视图的点击范围有限,如果赋值给image的图片太大,会出现点击图片大多区域,无法响应代理方法didSelectAnnotationView的bug;

解决方法是使用 系统提供的MAAnnotationView代替MAPinAnnotationView可以增大大头针视图的点击范围;

相关文章

  • 增加大头针视图点击响应区域

    网络请求回来的大头针视图的坐标、title、subtitle以及其他相关信息如何与指定的大头针视图绑定? 使用系统...

  • 2018年面试题

    1、页面上点击了某个视图,画出事件的响应链和传递链 2、视图上某块区域如何让其不响应点击 3、应用启动加速优化 4...

  • 子视图超出父视图的部分视图响应事件的问题

    现在有一个问题,点击黄色子视图超出红色视图的区域的时候,事件没有响应。原因是事件传递默认是在红色父视图的坐标区域里...

  • iOS开发 - MapKit框架之大头针及当前位置

    创建大头针、增加标记及覆盖物 步骤-SB拖入地图视图-然后如下 当前位置实时显示

  • 扩大视图点击区域

    导语 在工作中,经常创建一些视图(比如button),这时button很小,点击时,总感到不精准,有时我们会在这个...

  • 增加点击区域

    项目中很多时候需要扩大点击(交互)区域,或子试图超出了父视图后,无法点击或交互等,我们可以通过响应者链-(UIVi...

  • 点击下方视图响应

    当你想点击下方的视图时 1、上面的视图userInteractionEnabled为NO、则事件就会传递到下面的视...

  • 增加UIButton 点击区域

  • 增加可点击区域

    UIView+hitTest.h #import @interfaceUIView (enlargeZone)-...

  • 增加UIButton点击区域

    在平时开发的时候经常会遇到UI的给的设计图button很小,但是老板就说不好点击,让你凭空增加点击区域的情况,此时...

网友评论

      本文标题:增加大头针视图点击响应区域

      本文链接:https://www.haomeiwen.com/subject/hnlicqtx.html