0

我试图一次实现两个子类。

我正在使用UIViewController <CLLocationManagerDelegate>我的 viewController 中的子类来使用 gps。在使用UIView子类进行绘制时。

这是我拥有的代码的摘要:

MapViewController.h:

@interface MapViewController: UIViewController <CLLocationManagerDelegate>{
DrawCircle *circleView;
}

@property (nonatomic, retain) DrawCircle *circleView;
@end

画圈.h:

@interface DrawCircle : UIView
-(void)addPoint:(CGPoint)point;
@end

我在这里尝试做的是让 DrawCircle 成为 MapViewController 的一个属性。但是,我仍然没有运气在屏幕上绘制任何东西。

这是我的 DrawCircle.m 代码,如果它有帮助的话:

-(id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if(self) {
        _points = [[NSMutableArray alloc] init];
    }
    return self;
}

-(void)addPoint:(CGPoint)point {
    //Wrap the point in an NSValue to add it to the array
    [_points addObject:[NSValue valueWithCGPoint:point]];
    //This will tell our view to redraw itself, calling drawRect
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    for(NSValue *pointValue in _points) {
        CGPoint point = [pointValue CGPointValue];
        CGContextAddEllipseInRect(ctx, CGRectMake(point.x - 10, point.y - 10, 20, 20));
    }

    CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor redColor] CGColor]));
    CGContextFillPath(ctx);
}

作为最后一点信息,我可以给大家。这是我的地图视图控制器场景的快照。 MapViewController 场景

我有一种感觉,形状正在被绘制,但不知何故被掩盖了。

编辑 经过进一步调查,我的 UIImage 似乎覆盖了正在绘制的形状。我只是在乱搞并删除了 UIImage,我的形状就在那里。现在的问题是,我如何“向后移动”我的 UIImage,以便我的形状在前面?

4

0 回答 0