iOS 4のiPhoneでマップキットを使用しています。 カスタムオーバーレイビューとカスタムオーバーレイビューを使用してマップ上に図形を描画しています。 現在のところ、図形は長方形ですが、私はもっと洗練されたものを計画しています。これが私がMKPolygonオーバーレイタイプを使用していない理由です。 これは私のオーバーレイビューの描画メソッドのコードです:マップキックオーバーレイビューのパスをストロークできません
-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context
{
// Clip context to bounding rectangle
MKMapRect boundingMapRect = [[self overlay] boundingMapRect];
CGRect boundingRect = [self rectForMapRect:boundingMapRect];
CGContextAddRect(context, boundingRect);
CGContextClip(context);
// Define shape
CGRect shapeRect = CGRectMake(0.5f, 0.5f, boundingRect.size.width - 1.0f, boundingRect.size.height - 1.0f);
// Fill
CGContextSetRGBFillColor(context, 0.5f, 0.5f, 0.5f, 0.5f);
CGContextFillRect(context, shapeRect);
// Stroke
CGContextSetRGBStrokeColor(context, 0, 0, 0, 0.75f);
CGContextSetLineWidth(context, 1.0f);
CGContextStrokeRect(context, shapeRect);
}
問題は、長方形が正しく満たされ得るということである(彼らの境界矩形が正しく設定されて表示されます)、しかし、彼らはストロークされません。 誰も助けることができますか? ありがとう!
解決策がわかりませんが、私は[CGRectInset](http://developer.apple.com/library/ios/DOCUMENTATION/GraphicsImaging/Reference/CGGeometry/Reference/reference)に注目したいと思います。 html#// apple_ref/c/func/CGRectInset)(CGRectMakeで長方形を作成するのではなく)。 – DarkDust
ちょうど私に起こった:あなたはそれをさらにインセットすると、矩形はストロークされますか?だから最初にあなたはそれを塗りつぶし、その後、別の0.5でrectを差し込み、そしてそれを打ちます。 – DarkDust
これに関連する別の質問が見つかりました:http://stackoverflow.com/questions/5274164/custom-mkoverlayview-line-width問題は線幅のスケーリングと思われ、私のコードをこのように修正する必要があるようですCGContextSetLineWidth(context、5.0f/zoomScale); –