CALayer Аудио индикатор с маской - PullRequest
0 голосов
/ 20 марта 2012

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

Спасибо за любые предложения!

...