Swift Ui Есть 4 слайдера для углов View при попытке изменить радиус угла то сбрасывается другой?

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

Есть 4 слайдера для каждого угла View и 4 action которые изменяют радиус угла но при каждом выполнения Action сбрасывается значения которые уже были изменены Почему так происходит ? т.е я могу изменить радиус только одного угла потому что изменения сбрасываются в исходном состоянии

вот 4 Асtion

@IBAction func left_top_cornier_slider_action(_ sender: UISlider) {
    viewControlIBO.layer.maskedCorners = [.layerMinXMinYCorner]
    viewControlIBO.layer.cornerRadius = CGFloat(left_top_cornier_slider.value)
}
@IBAction func right_top_cornier_slider_action(_ sender: UISlider) {
    viewControlIBO.layer.maskedCorners = [.layerMaxXMinYCorner]
    viewControlIBO.layer.cornerRadius = CGFloat(right_top_cornier_slider.value)
}
@IBAction func right_down_cornier_slider_action(_ sender: UISlider) {
    viewControlIBO.layer.maskedCorners = [.layerMaxXMaxYCorner]
    viewControlIBO.layer.cornerRadius = CGFloat(right_down_cornier_slider.value)
}
@IBAction func left_down_cornier_slider_action(_ sender: UISlider) {
    viewControlIBO.layer.maskedCorners = [.layerMinXMaxYCorner]
    viewControlIBO.layer.cornerRadius = CGFloat(left_down_cornier_slider.value)
}

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

Ответы

▲ 0

Для UIKit единственный выход - использовать UIBezierPath

Ответ есть в англоязычном сообществе, вот ссылка

При использовании UIBezierPath нужно быть аккуратным, если верстка использует NSLayoutConstraint, потому, что они вычисляются динамически