2014-08-31 2 views
1

в моем приложении Я хочу изменить фон uiview на основе камеры, все работает правильно, но проблема в том, что фон слишком сильно изменяется (я думаю, из-за фокуса).Как обновить UIView фона плавно

Итак, есть способ изменить цвет фона UIView плавно?

Я использую этот код:

dispatch_async(dispatch_get_main_queue(),^{ 
     [myview setBackgroundColor:[UIColor colorWithRed:red green:green blue:blue alpha:1]]; 
}); 

Решение анимации UIView не работает обусловленно изменения слишком быстро.

+0

Каков ваш код для анимации UIView? Длина настраивается в них, чтобы вы могли замедлить ее. –

+0

Я использую UIView animateWithDuration: animations: method, но даже если я ставлю длительность не 0,003 секунды, изменения не являются гладкими. – Gnamm

ответ

0

Перед установкой цвета фона сделайте что-нибудь наподобие;

CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setType:kCATransitionFade]; 
[transitionAnimation setDuration:0.2f]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; 
[transitionAnimation setFillMode:kCAFillModeBoth]; 
[myview layer addAnimation:transitionAnimation forKey:@"fadeAnimation"]; 

Надеюсь, это даст вам нежное угасание при изменении цвета.

+0

Это не работает, может быть, через 0,2 секунды фон изменяется 8 o 9 раз, потому что я получаю данные из камера и обновляет вид в реальном времени – Gnamm

+0

Хорошо, я думаю, что, возможно, неправильно понял ваш оригинальный вопрос. Помогает ли уменьшение SetDuration до более быстрого значения? – Gismay

+0

Нет, я пробовал. Я думаю, что единственным решением, если я хочу сделать все в реальном времени, является резкое изменение фонового фона. Спасибо, в любом случае – Gnamm

Смежные вопросы