带面具的CALayer音频指示器

时间:2012-03-19 22:46:50

标签: objective-c ios audio calayer quartz-graphics

好的,我想要做的是创建一个音频指示器,基本上将一个遮罩或图层覆盖到具有背景颜色和不透明度的图像上......所以它看起来像一个红色水平指示器正在上下弹跳麦克风图像,我用非常差的方式工作,每次使用UIImage掩码更新图像,但这是非常低效的。

我试着让它与CALayer一起工作,它比我尝试过的第一次试错法更好。现在的问题是我只显示一个矩形和相应的水平。我希望它受麦克风图像的限制,所以它看起来是半满的,例如,当我屏蔽边界时,矩形采用麦克风的形状,并以该形状上下跳跃而不是“填充”图像。

希望这不是太混乱,我希望你能理解前提并帮助!!以下是我现在使用的一些代码,错误的方式:

    self.image = [UIImage imageNamed:@"img_icon_microphone.png"];

    CALayer *maskLayer = [CALayer layer];
    maskLayer.frame = CGRectMake(0.f, 0.f, 200.f, 200.f);
    maskLayer.contents = (id) [UIImage imageNamed:@"img_icon_microphone.png"].CGImage;

    micUpdateLayer = [CALayer layer];
    micUpdateLayer.frame = CGRectMake(0.f, 200.f, 200.f, -5.f);
    micUpdateLayer.backgroundColor = [UIColor redColor].CGColor;
    micUpdateLayer.opacity = 0.5f;

    [self.layer addSublayer:micUpdateLayer];

然后我只是使用NSTimer并调用一个函数,该函数只是更新micUpdateLayer.frame y以使其看起来与音频输入一起移动。

感谢您的任何建议!

0 个答案:

没有答案