iOS - 如何使用UISlider控制UIBezierPath绘图?

时间:2012-10-26 11:56:09

标签: objective-c ios uislider uibezierpath

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

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

因此,当我向前擦洗时,路径呈现向前和向前当我向后擦洗时,路径会向后渲染。

我有代码根据这个示例代码在两个方向上呈现路径绘图,我添加了反向路径(https://github.com/ole/Animated-Paths)

我正在努力理解的主要问题是当我移动滑块时如何才能渲染路径,因为我无法真正使用动画,因为它们不会随滑块移动而更新。

干杯 达明

2 个答案:

答案 0 :(得分:1)

如果您正在跟踪UISlider的“Control Events”,例如:

[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:”里面做你的动画。我不能说它会有多顺畅!因为可能会对该方法进行大量调用。

答案 1 :(得分:0)

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

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

这给了我想要的方法,并允许我根据滑块更改值。

对于绘图我使用了CGContextMoveToPoint& CGContextAddLineToPoint用于渲染路径

干杯