タスクは、Scrollview で使用しているカスタム マップに実行時にパスを描画することです。その後、位置座標 (緯度、経度) が更新されるたびに、実行時にパスを描画する必要があります。ここで解決しようとしている問題は、「drawrect:」メソッドで描画をコーディングする UIView のサブクラスであるクラス「グラフィックス」を作成したことです。そのため、画像上のスクロールビューのサブビューとしてグラフィックを追加すると、線が描画されますが、パスであるかのように線を描画し続ける必要があります。実行時に線を描画する必要があり、'CGContextStrokeLineSegments' メソッドの points(x,y) を更新し続ける必要があります。コード:
ビューコントローラー:
- (void)loadView {
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
graph = [[graphics alloc] initWithFrame:fullScreenRect];
scrollView.contentSize=CGSizeMake(320,480);
UIImageView *tempImageView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fortuneCenter.png"]];
self.view=scrollView;
[scrollView addSubview:tempImageView2];
scrollView.userInteractionEnabled = YES;
scrollView.bounces = NO;
[scrollView addSubview:graph];
}
Graphics.m:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor clearColor];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint point [2] = { CGPointMake(160, 100), CGPointMake(160,300)};
CGContextSetRGBStrokeColor(context, 255, 0, 255, 1);
CGContextStrokeLineSegments(context, point, 2);
}
では、実行時にどのように線を引くことができますか。今はシミュレートしているだけなので、リアルタイム データ (座標) は使用していません。ダミーデータ(x、yの座標)を使ってシミュレートしたいだけです。ボタンがあるとしましょう。ボタンを押すたびに座標が更新され、パスが延長されます。