最简单的方法是石英。使用CGContext
绘制函数将曲线或曲线绘制到位于相机视图上的UIView
中。这里面UIView
的drawRect:
方法很容易做到,因为你可以很容易地检索特定UIView
的CGContext
。为了更好地说明这一点,这里有一个例子:
//
// PlotView.m
// testApp
//
// Created by Me on 10/20/13.
// Copyright (c) 2013 Me. All rights reserved.
//
#import "PlotView.h"
@implementation PlotView
-(void)drawRect:(CGRect)rect
{
//The CGContext for this UIView instance
CGContextRef context = UIGraphicsGetCurrentContext();
//Set the draw style
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//Add elements to draw
CGContextAddArc(context, CGRectGetMidX(rect), CGRectGetMidY(rect), CGRectGetWidth(rect)/2, M_PI_4, 3*M_PI_4, YES);
//commit draw
CGContextDrawPath(context, kCGPathStroke);
//additional parts with different draw setup
CGContextSetLineWidth(context, 5);
CGContextAddEllipseInRect(context, CGRectMake(10, 10, 50, 50));
CGContextDrawPath(context, kCGPathFillStroke);
}
@end
您可以在此单一视图绘制的一切,只是根据设备的运动调整其位置。您也可以正常隐藏/显示视图(更改alpha
或hidden
属性)。 要触发更新(例如,当卫星更换位置时),请调用setNeedsDisplay
或setNeedsDisplayInRect:
方法。如果有必要,为了优化的缘故,在后者中使用rect
参数(以及drawRect
方法中的相同参数),以触发仅在视图的必要部分(也仅在该矩形中绘制)重绘。
关于你需要显示的曲线:我相信你会找到一个合适的CGContextAdd...
函数,你需要绘制的形状,无论是一个弧,一组直线或贝塞尔曲线。
Burax,非常详细的答案谢谢你,这是一个非常好的介绍,我需要进一步研究/研究。现在,我会投票答复,并在研究/尝试你在一周中提到的内容后,我会回来并将其标记为答案。再次感谢您的介绍!欣赏它! – rkh
burax,对于已故的评论感到抱歉:我已经离开了一段时间,直到现在还不能完全理解/了解您提出的解决方案。我还不执行它,我有几个问题和将不胜感激,如果你能花一分钟来回答: 1 - 你说“使用CGContext上画功能为你打下了一个UIView绘制你的圆弧曲线或相机视图“如果圆弧/视图的尺寸比屏幕尺寸大得多并根据当前设备的方位进行设置,那么这样做会起作用吗? – rkh
2-卫星并不真正改变位置(对地静止),所以基于纬度/经度位置和X度(也是海拔),卫星点的曲线总是相同的。只有当轴承X和设备的高程发生变化时,曲线才会移动......(只是说) – rkh