Представление Picker перезаписывает значение эффекта размытия в Swift 4.2 - PullRequest
0 голосов
/ 25 декабря 2018

Я хочу увеличить или уменьшить уровень эффекта размытия на фотографии, используя окно выбора.Даже если я уменьшу значение, к нему добавится эффект непрерывного размытия.Что мне делать?

Работать на последних версиях Swift и Xcode

class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {

@IBOutlet var bg: UIImageView!
@IBOutlet var pickView: UIPickerView!

func numberOfComponents(in pickerView: UIPickerView) -> Int {

    return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    return arr.count
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    switch arr[row] {
    case "1":
        Blur(blur: 0.3)
    case "2":
        Blur(blur: 0.6)
    case "3":
        Blur(blur: 0.0)
    default:
        print("not change")
    }
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return arr[row]
}
let arr = ["1","2","3"]
override func viewDidLoad() {
    super.viewDidLoad()
    pickView.dataSource = self
    pickView.delegate = self
    // Do any additional setup after loading the view, typically from a nib.
}
func Blur(blur:CGFloat)
{
    let blurEffect = UIBlurEffect(style: UIBlurEffect.Style.light)
    let blurView = UIVisualEffectView(effect: blurEffect)
    blurView.frame = bg.bounds
    blurView.alpha = blur
    self.view.addSubview(blurView)       
}
}

1 Ответ

0 голосов
/ 25 декабря 2018

Ваш Blur(blur: 0.3) является функцией, а не классом объекта, он будет работать без изменения свойств.И ваш функционал добавил Subview к вашему родительскому представлению, но ни одной строки кода, чтобы удалить его перед добавлением другого.Таким образом, он будет сложен.

  1. Удалите старое подпредставление размытия, затем добавьте новое.
  2. Сначала создайте вид размытия по умолчанию, а затем измените его свойства.
...