ios - 如何优化我的代码以在不同的类中使用一种方法而不是多个相同的方法?

标签 ios objective-c swift optimization

我在不同的 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/

相关文章:

iphone - iOS 设置.plist

ios - 我可以在创建 Cocoa Touch Framework 时使用 CocoaPods 吗?

swift - 我正在尝试为 Swift 3 更新我的 for 循环,但我无法弄清楚。我不断收到错误

objective-c - 如何将我的 nib 文件的所有者设置为另一个 nib 文件中的对象?

ios - 核心数据的动态变量名称

c++ - xcode 4.2 Apple LLVM 编译器 3.0 是否与 c++ 异常完全兼容?

swift - 在 Swift 中进行类型转换以查找数组与字典时偶尔会发生崩溃

ios - 如何在 swift 中使用 NMSSH

ios - 从一个标签栏移动到另一个标签栏时屏幕变黑

ios - 子类化 UITableViewCell 并以编程方式删除 subview - 如何调整它的大小?