【发布时间】:2017-05-04 21:16:50
【问题描述】:
也许这是一个尴尬的问题,但可以将 String 转换为 UIKit 元素。我的意思是:
我有以下 UIViewController
import UIKit
class BlurVC: UIViewController {
let bg: UIImageView = {
let image = UIImageView()
image.image = #imageLiteral(resourceName: "IMG_9293")
image.contentMode = .scaleAspectFill
image.backgroundColor = .red
return image
}()
let blurView: UIVisualEffectView = {
let view = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
bg.frame = view.bounds
view.addSubview(bg)
blurView.frame = bg.bounds
bg.addSubview(blurView)
setBlurButton()
}
func setBlurButton() {
let blurEffects = ["extraLight", "light", "dark"]
for index in 0..<blurEffects.count{
let button = UIButton()
button.setTitle(blurEffects[index], for: .normal)
button.addTarget(self, action: #selector(setBlurEffect(_ :)), for: .touchUpInside)
button.frame = CGRect(x: 10, y: 10 + index * 30, width: 100, height: 30)
view.addSubview(button)
}
}
func setBlurEffect(_ sender: UIButton){
print(sender.titleLabel?.text)
if let blurEffect = sender.titleLabel?.text {
blurView.effect = UIBlurEffect(style: ".\(blurEffect)")
}
}
}
我用 3 个 UIBlurEffectStyle 参数的标题动态创建了 3 个按钮。
接下来我想根据标题标签设置 UIBlurEffectStyle 的值。
当然,xCode 警告我它不能将字符串转换为 UIBlurEffectStyle。
我可以将此字符串转换为 UIBlurEffectStyle 吗?如果是,怎么做?
谢谢。
【问题讨论】: