gpt4 book ai didi

ios - 将 UIImageView 设置为模糊的初始状态

转载 作者:行者123 更新时间:2023-11-28 15:45:35 25 4
gpt4 key购买 nike

我试图在 UIViewController 上对背景图像进行初始模糊处理。当调用 @IBAction 时,我想取消模糊 backgroundImage。我可以让图像最初模糊,但如果我最初模糊它,我就无法摆脱模糊。但是,如果我一开始不对 backgroundImage 进行模糊处理,我的方法会根据需要在模糊图像和未模糊图像之间切换。

这些是我的 UIViewController 类中的相关变量。

@IBOutlet weak var backgroundImage: UIImageView!
// I also leave this hanging around so I can add/remove it as needed
var blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))

当 View 加载时,我最初希望 backgroundImage 在其上有一个 UIVisualEffectView。我最初尝试在 viewDidLoad 中调用 toggleBlurView,但是 UIBlurEffect 的显示已关闭,所以我添加了 toggleBlurView< 的代码 in viewDidLayoutSubviews,解决了这个问题。

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// if I comment this out, the toggleBlurView() method works as desired
toggleBlurView()
}

这是我的toggleBlurView 方法。

func toggleBlurView() {
// if there's a blurView, remove it...
if blurView.isDescendant(of: backgroundImage) {
blurView.removeFromSuperview()
}
// otherwise, add blurView to backgroundImage
else {
blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
blurView.frame = backgroundImage.bounds
backgroundImage.addSubview(blurView)
}
}

我有一个 @IBAction,它在被调用时还会运行 toggleBlurView 方法。

@IBAction func playFrequency(_ sender: UIButton) {
// do stuff
toggleBlurView()
}

我的代码没有崩溃,但我得不到想要的结果。我不确定我是发现了错误还是做错了什么。我打赌后者。感谢您的阅读,欢迎就如何将图像设置为模糊的初始状态提出建议。

最佳答案

我得到了下面的代码,如你所愿。我更改了 toggleBlurView 函数,使其更灵活一些,但这应该不会影响功能。

//
// ViewController.swift
// tableviewheader-test
//
// Created by Forest Kunecke on 3/29/17.
// Use this code for freeeeee!!!! Free as in free beer!!
//

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var myImage: UIImageView!
var blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))

override func viewDidLoad() {
super.viewDidLoad()

toggleBlurView(myImage)
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


@IBAction func toggleBlur(_ sender: Any) {
toggleBlurView(myImage)
}

func toggleBlurView(_ imageView: UIImageView) {
// if there's a blurView, remove it...
if blurView.isDescendant(of: imageView) {
blurView.removeFromSuperview()
}
// otherwise, add blurView to backgroundImage
else {
blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
blurView.frame = imageView.bounds
imageView.addSubview(blurView)
}
}

}

这是我的 Storyboard的截图:

screenshot of toggle image storyboard

关于ios - 将 UIImageView 设置为模糊的初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com