【发布时间】:2016-10-25 07:04:44
【问题描述】:
我正在创建录音应用,就像语音备忘录一样。到目前为止,我能够录制、播放、修剪和合并音频。我创建波形条的时间线,就像任何音乐应用程序中的条形可视化一样。
当用户停止录制时,如果他出错了,他可以回到特定的秒从那里重新录制。例如,如果他在 50 秒时停止录制,因为他在 45 秒后犯了错误。他将通过拖动水平滚动条(时间线)进入 45 秒。当他点击录制按钮时,我想在 45 秒后清除所有波条。我如何实现这一目标?这就是我使用CAShapeLayer 在滚动视图中创建波浪条的方式。
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
[shapeLayer setPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, barWidth, barHeight) cornerRadius:2] CGPath]];
shapeLayer.fillColor = [UIColor whiteColor].CGColor;
shapeLayer.position = CGPointMake(barX, scrlViewBars.frame.size.height - barHeight);
[scrlViewBars.layer addSublayer:shapeLayer];
这段代码是在一个循环中编写的,在录制开始后每秒会调用 2 次。从而创建波条。那么如何删除添加到UIScrollView 的图层。我发现 nilling layer.sublayers 会删除该层。但我不知道如何实现。
【问题讨论】:
标签: ios objective-c uiscrollview uibezierpath cashapelayer