2016-02-21 3 views
1

У меня есть fuction, который после тряски сбрасывает все слайдеры на свои значения по умолчанию и вызывает -proccesImage после изменения значения ползунка. Проблема в том, что каждый из слайдеров действительно переустанавливается на позиции по умолчанию, но GPUImage не обновляет представление.GPUImage не обновляется при обнаружении MotionShake

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) 
{ 
    if(event?subtype) == UIEventSubtype.MotionShake{ 
     for slider in sliders! 
     { 
      slider.value = myDefault(slider.tag); 
      sliderValueChanged(slider) 
     } 
    } 
} 

@IBAction func sliderValueChanged(sender: UISlider) 
{ 

    switch sender.tag{ 
     case 1: 
      filter.temperature = CGFloat(sender.value) 

     case 2: 
      dliter2.exposure = CGFloat(sender.value) 
     case 3: 
      //more cases.. 
     default:print("...") 

    } 
    gpuimage?.processImage(); // I know for a fact that this gets called, but doesn't update the view :(
} 

Обратите внимание, что у меня также есть идентичные функции, связанные с жестом UITap. Когда пользователь дважды нажимает ползунок, он возвращается к своему значению по умолчанию и сразу же обновляет его. Код ниже работает отлично.

func resetSlider(sender: UITapGestureRecognizer) 
{ 
     let tag = (sender.view?.tag)!; 
     sliders![tag].value = myDefault(tag) 
     sliderValueChanged(sliders![tag]); 
} 

ответ

0

Поэтому я не нашел причины, по которым он не обновлялся. Но я решил проблему на removing all targets и позвонил viewWillAppear() после этого, чтобы он снова добавил цели так же, как если бы это был совершенно новый образ.

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