Swift UI Вопрос почему не меняется свойство alha в реальном времени?

Рейтинг: 0Ответов: 1Опубликовано: 20.01.2023

Есть ползунок хочу чтобы при изменении значения ползунка менялись свойство alpha в реальном времени. Я пытался делать в Action ползунка, но почему-то при изменении значения ползунка не меняется alpha точнее она меняться но при обновлении экрана, как зделать так чтобы она менялась без обновления экранна

@IBAction func choiceSegment(_ sender: UISegmentedControl) {
    
    switch segment.selectedSegmentIndex{
        case 0:
            Slider_ui()
        case 1:
            hiden_slider_section()
        case 2:
            hiden_slider_section()
        case 3:
            hiden_slider_section()
        default: break
    }
}
@IBAction func SliderAction(_ sender: UISlider) {
    common_label.text = String(sliderControl.value)
}

func Slider_ui(){
    sliderControl.isHidden = false
    common_label.isHidden = false
    viewControlIBO.isHidden = false
    
    common_label.text = String(sliderControl.value)
    
    //----- это не работает почему-то
    
    viewControlIBO.alpha = CGFloat(sliderControl.value)
    
    
}

введите сюда описание изображения

Ответы

▲ 0Принят

Не очень понятно, из представленного куска кода, но предложу попробовать решить проблему так (добавить вашу строчку изменения alpha):

@IBAction func SliderAction(_ sender: UISlider) {
   common_label.text = String(sliderControl.value)
   viewControlIBO.alpha = CGFloat(sliderControl.value)
}

Ваш @IBAction вызывается каждый раз когда сдвигается слайдер и в вашем варианте кода в @IBAction присутствует только строчка изменения текста лэйбла, а альфу вы меняете почему-то в отдельной функции, которая (повторю свой комментарий) непонятно откуда вызывается (и непонятно, вызывается ли вообще и работает ли она вообще вся).