7

UIViewController明らかに呼び出されたのサブクラスであるviewControllerがありMapViewControllerます。この viewController では、GPS を使用してユーザーの位置を取得します。

というビューもありますDrawCircle。このビューは のサブクラスですUIView

drawCircle を使用して、いつでも MapViewController に描画できるようにしたいと考えています。しかし、そうするという概念を理解しているかどうかはわかりません。描画コードが機能していることは知っています。以前に使用したことがあります。MapViewControllerしかし、 を使用して描画する方法がわかりませんDrawCircle

私が呼び出すたびに私のように見えることから、それは私のビューでメソッドを[myCustomView setNeedsDisplay]呼び出していません。DrawRect

ここにいくつかのコードがあります: MapViewController.h

#import "DrawCircle.h"


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

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

MapViewController.m

#import "DrawCircle.h"

@interface MapViewController ()
@end

@implementation MapViewController
@synthesize circleView;

- (void) viewDidLoad
{
    circleView = [[DrawCircle alloc] init];
    [self setNeedsDisplay];

    [super viewDidLoad];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

DrawCircle.m

#import "DrawCircle.h"

@interface DrawCircle() 
@end

@implementation DrawCircle

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

- (void)drawRect:(CGRect)rect
{

    CGContextRef ctx = UIGraphicsGetCurrentContext();


      CGPoint point = CGPointMake(40, 137);
      CGContextAddEllipseInRect(ctx, CGRectMake(point.x, point.y, 10, 10));
    }

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

また、これが私の思考プロセスに役立つ場合は、これが私の StoryBoard シーンです。 絵コンテシーン

ビューコントローラーのカスタム クラスは MapViewController で、ビューのカスタム クラスは DrawCircle です。

**編集:** また、DrawCircle.m には、MapViewController.m から呼び出しているメソッドがあり、機能していることにも言及したいと思います。

また。最初に、DrawRect メソッドが呼び出されていますが、手動で呼び出すことができませんsetNeedsUpdate。デバッグ時は DrawRect メソッドにも入っていません。

4

1 に答える 1