我在不同的 View Controller 类中有相同的方法,基本上它为 View Controller 添加了模糊效果。现在我正在尝试使用其他 swift 类型来简化我的代码,但我很困惑如何实现它以便添加 subview 正常工作。处理此类案例的好方法是什么?扩展、协议(protocol)、结构、类或其他功能?
这是一个 View Controller (此处已简化):
import UIKit
class MyClass: UIViewController {
weak var blurEffectView : UIVisualEffectView?
.... other methods ....
func addBlurrEffect() {
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
let blurEffectVw = UIVisualEffectView(effect: blurEffect)
blurEffectVw.frame = self.view.bounds
blurEffectVw.autoresizingMask = [.flexibleWidth, .flexibleHeight] // for supporting device rotation
self.view.addSubview(blurEffectVw)
blurEffectView = blurEffectVw
}
... other methods ....
}
我还有其他类似的 View Controller 。我怎样才能将它们重构为在整个项目中只使用一次 addBlurEffect() ?
最佳答案
在您的项目中为模糊功能创建 NSObject 类,并在其中添加您的方法。
要调用方法,首先在您的 VC 中创建该模型类的对象并像这样使用 obj.addBlur()。
注意:如果您需要来自 vc 的任何变量,请将该变量作为 addBlur 函数的参数发送。
例子:addBlur(self.Viewblur)
关于ios - 如何优化我的代码以在不同的类中使用一种方法而不是多个相同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120307/