Хорошо, я хочу создать звуковой индикатор, в основном наложить маску или слой на изображение с цветом фона и непрозрачностью ... так что похоже, что красный индикатор уровня отражается вверх и вниз над Изображение с микрофона, я сделал так, чтобы оно работало очень плохо, обновляя изображение каждый раз маской 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, чтобы он, казалось, двигался с аудиовходом.
Спасибо за любые предложения!