0

我想使用 UISlider 控制 UIBezierPath 的绘制。

目的是能够擦洗时间线 (UISlider) 并根据滑块的当前位置使线 (UIBezierPath) 绘制。

这样当我向前擦洗时,路径会向前渲染,而当我向后擦洗时,路径会向后渲染。

我有代码可以根据我添加反向路径的示例代码在两个方向上渲染路径图(https://github.com/ole/Animated-Paths)

我很难理解的主要事情是当我移动滑块时如何渲染路径,因为我不能真正使用动画,因为它们不会随着滑块的移动而更新。

干杯达米安

4

2 回答 2

1

如果您正在跟踪 UISlider 的“控制事件”,例如这样:

[yourSlider addTarget:self action:@selector(seekBegan:) forControlEvents:UIControlEventTouchDown];
[yourSlider addTarget:self action:@selector(seekContinues:) forControlEvents:UIControlEventTouchDragInside];
[yourSlider addTarget:self action:@selector(seekEnded:) forControlEvents:UIControlEventTouchUpInside];

..然后您可以在“seekContinues:”中制作动画。我不能说它会多么顺利!因为可能有很多对该方法的调用。

于 2012-10-27T18:32:41.220 回答
0

所以我发现我无法使用动画来实现我想要的,所以我使用了一个自定义 UIView 子类并在它的 drawRect 方法中实现了处理动画的代码

基本上我在子类中设置了一个索引来控制drawrect方法绘制的点数。

这为我提供了所需的方法,并允许我根据滑块更改值。

对于绘图,我使用 CGContextMoveToPoint 和 CGContextAddLineToPoint 来渲染路径

干杯

于 2012-10-30T15:31:12.783 回答