如何在一个点(一个UIView的中心)和一个移动点(触摸位置)之间画一条线,当触摸移动时,该线移动第二个点。
答案 0 :(得分:5)
在自定义视图中:
[self setNeedsDisplay]
以便视图重绘drawRect:
中实现线条的绘制,使用核心图形绘制线条假设您将触摸的点存储到属性self.touchedPoint
中,然后绘图可能如下所示:
@property (nonatomic, assign) CGPoint touchedPoint;
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, rect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetShouldAntialias(context, YES);
CGContextSetLineWidth(context, 1.0f);
CGContextSetRGBStrokeColor(context, 0.7, 0.7, 0.7, 1.0);
CGContextMoveToPoint(context, rect.size.width/2, rect.size.height/2);
CGContextAddLineToPoint(context, self.touchedPoint.x, self.touchedPoint.y);
CGContextDrawPath(context, kCGPathStroke);
CGContextRestoreGState(context);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
self.touchedPoint = [[touches anyObject] locationInView:self];
[self setNeedsDisplay];
}
答案 1 :(得分:0)
我投了Michal的回答。但我也建议查看Touches示例项目。它很容易让它运行 - 如果你还在整理你的项目,这可能会有所帮助。