最简单的方法是使用石英。CGContext
使用绘图功能将您的弧线或曲线绘制到UIView
您放置在相机视图上的 a 中。这在UIView
'sdrawRect:
方法中很容易完成,因为您可以轻松检索CGContext
特定UIView
. 为了更好地解释这一点,这里有一个例子:
//
// 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
orsetNeedsDisplayInRect:
方法。为了优化,如有必要,请使用rect
后者中的参数(以及drawRect
方法中的相同参数)以仅在需要的部分视图上触发重绘(并且也仅在此矩形中绘制)。
关于你需要显示的曲线:我相信你会找到一个适合CGContextAdd...
你需要绘制的形状的函数,无论是圆弧、一组直线还是贝塞尔曲线。