ios - 循环创建对象多个,代理给对象赋值 怎么一一对应
伊谢尔伦
伊谢尔伦 2017-04-17 17:59:05
[iOS讨论组]

/**
*根据指定坐标点生成一段折线
*@param coords 指定的经纬度坐标点数组
*@param count 坐标点的个数
*@return 新生成的折线对象
*/

  • (BMKPolyline )polylineWithCoordinates:(CLLocationCoordinate2D )coords count:(NSUInteger)count;

for (NSInteger index = 0; index < array.count; index++) {

           // 生成折线
            BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
            [_mapView addOverlay:polyline];

}

/**
*根据overlay生成对应的View
*@param mapView 地图View
*@param overlay 指定的overlay
*@return 生成的覆盖物View
*/
(BMKOverlayView )mapView:(BMKMapView )mapView viewForOverlay:(id )overlay;

// 代理方法。

  • (BMKOverlayView)mapView:(BMKMapView )map viewForOverlay:(id)overlay
    {
    if ([overlay isKindOfClass:[BMKPolyline class]]) {

       // 创建我自己想要的折线view
           MaintenanceBMKPolylineView* polylineView = [[MaintenanceBMKPolylineView alloc] initWithOverlay:overlay];
           polylineView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:1];
           polylineView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
           polylineView.lineWidth = 5.0;
           // 我需要的就是这个Array 对应 到数据
          polylineView.infoArray = [[NSMutableArray alloc] initWithObjects:_maintenancePolylineViewArray[_maintenancePolylineViewIndex-1], nil];
           return polylineView;
       }

    }

@interface MaintenanceBMKPolylineView : BMKPolylineView
{
}
@property (nonatomic , strong) NSMutableArray *infoArray; // 存储线段的的信息
@end

@implementation MaintenanceBMKPolylineView
@end

问题:
array.count 假如 = 10;

for (NSInteger index = 0; index < array.count; index++) {

// 用数组记录下折线的数据
[_maintenancePolylineViewInfoArray addObject:dic];
           // 生成折线
            BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
            [_mapView addOverlay:polyline];

}

现在循环调用10次创建 折线。
若现在创建的第0条折线因经纬度原因在手机屏幕外。那么用户在移动屏幕后,才会调用
(BMKOverlayView )mapView:(BMKMapView )mapView viewForOverlay:(id )overlay;方法去生成对应的polylineView。画出那个线段。

在循环中我用_maintenancePolylineViewInfoArray记录了10条折线他们各自对应的内容。
_maintenancePolylineViewInfoArray{A,B,C,D,E…};

请问,我怎么能做到让_maintenancePolylineViewInfoArray中的数值对应我创建出来的每一条折线呢?让_maintenancePolylineViewInfoArray的每个元素对应到代理方法中MaintenanceBMKPolylineView的infoArray。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
阿神

请问你的 coors 是怎么创建的,coors的个数不确定的话,又该如何创建呢

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号