民间,
我正在寻找有关我应该学习/阅读的内容的指示/指示,以便完成我需要的工作。我不是在寻找一个完整的解决方案/答案(除非你当然准备好了))。
我的问题是我想在相机/视频视图上呈现叠加层。叠加层包含一个ARC /曲线,其上面有点。叠加层将在那里,但只有在用户将设备倾斜到高程X(度)并承载Y时才会显示。
在youtube上的以下两个视频中可以看到几个例子: {0}在时间0:15到0:50和 {0}在时间0:14到结束(0:48)
我从未使用过quartz / graphics / spritekit,我甚至不知道这些是否有用,因此我不知道从哪里开始......
感谢您的帮助。在此先感谢!
答案 0 :(得分:1)
最简单的方法是使用石英。使用CGContext
绘制函数将弧或曲线绘制到放置在摄像机视图上的UIView
。这可以在UIView
的{{1}}方法中轻松完成,因为您可以轻松检索特定drawRect:
的{{1}}。为了更好地解释这一点,这是一个例子:
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
属性)。
要触发更新(例如,当satelittes更改位置时),请调用alpha
或hidden
方法。为了优化,如果需要,在后者中使用setNeedsDisplay
参数(以及setNeedsDisplayInRect:
方法中的相同参数)仅在视图的必要部分触发重绘(并且仅在这个矩形)。
关于您需要显示的曲线:我确信您会找到一个合适的rect
函数,其中包含您需要绘制的形状,无论是圆弧,一组直线还是贝塞尔曲线。