我需要帮助制作一个绘图演示。
当用户使用手指画一条线时,这条线的两端会有方向箭头。当他们放开手指时,它会在线的中心处画上“?”(问号)。
然后,当用户点击“?”时,它将显示一个新视图,用户可以输入值,该值在该线上。
我们可以在捕获图像上添加多条线,并且我们可以删除选定的线。
我不明白如何开始开发这些功能,所以请给我一个想法、任何链接或建议来开始开发这个功能。
我需要帮助制作一个绘图演示。
当用户使用手指画一条线时,这条线的两端会有方向箭头。当他们放开手指时,它会在线的中心处画上“?”(问号)。
然后,当用户点击“?”时,它将显示一个新视图,用户可以输入值,该值在该线上。
我们可以在捕获图像上添加多条线,并且我们可以删除选定的线。
我不明白如何开始开发这些功能,所以请给我一个想法、任何链接或建议来开始开发这个功能。
UITapGestureRecognizer
和UIBezierPath
。让用户在一个点上点击,然后在第二个点上点击,然后在两个点之间创建一个UIBezierPath
。要在中间添加问号,您可以使线从第一个点到(第1个点和第2个点之间距离的一半-20pt)的位置。然后对另一半线也做同样的操作(这样您现在就有了一条带空格的线)。CGContextRef c = UIGraphicsGetCurrentContext();
CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextSetStrokeColor(c, red);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 5.0f, 5.0f);
CGContextAddLineToPoint(c, 50.0f, 50.0f);
CGContextStrokePath(c);
UIView
的子类来创建一个绘制空间。然后使用UITapGestureRecognizer
来检测轻击手势。正如@WyattMufson在他的答案中所建议的,我会让用户轻击一次以获取线段的起点,然后再轻击一次以获取终点。这样做是为了确保只能绘制直线。UILongPressGestureRecognizer
。用户会在绘制的线上轻按并长按,这将弹出一个气泡窗口以确认用户是否要继续进行删除操作。如果是,则访问保存的线坐标以检测长按是否发生在线上。如果是,则擦除该线。