好的,我想要做的是创建一个音频指示器,基本上将一个遮罩或图层覆盖到具有背景颜色和不透明度的图像上......所以它看起来像一个红色水平指示器正在上下弹跳麦克风图像,我用非常差的方式工作,每次使用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以使其看起来与音频输入一起移动。
感谢您的任何建议!