Ios 在swift中,您将全局方法放在哪里?
我的所有控制器都有一个共同的功能:Ios 在swift中,您将全局方法放在哪里?,ios,swift,Ios,Swift,我的所有控制器都有一个共同的功能: func myColor() -> UIColor { return UIColor(red: 9.0/255.0, green: 134.0/255.0, blue: 255.0/255.0, alpha: 1) } 我可以将此函数放在何处,以便从任何控制器访问它?默认情况下,应用程序中的任何地方都可以使用所有默认访问范围(内部)函数。如果在不同的模块中定义了此函数,则需要使用publicmodifier 为了使代码更清晰,最好为UIColo
func myColor() -> UIColor {
return UIColor(red: 9.0/255.0, green: 134.0/255.0, blue: 255.0/255.0, alpha: 1)
}
我可以将此函数放在何处,以便从任何控制器访问它?默认情况下,应用程序中的任何地方都可以使用所有默认访问范围(
内部
)函数。如果在不同的模块中定义了此函数,则需要使用public
modifier
为了使代码更清晰,最好为UIColor
创建扩展
extension UIColor {
class func myColor() -> UIColor {
return UIColor(red: 9.0/255.0, green: 134.0/255.0, blue: 255.0/255.0, alpha: 1)
}
}
然后您可以使用与默认UIColor
颜色相同的myColor
颜色
let systemColor = UIColor.blackColor()
let myColor = UIColor.myColor()
1) 您的函数每次返回的颜色是否与问题中的相同?在这种情况下,为什么不在AppDelegate中将其设置为静态颜色,您可以使用
(UIApplication.sharedApplication() as AppDelegate).myColor
2) 如果您的颜色每次根据类属性返回不同的颜色,但对所有类使用相同的公式,例如
func myColor() -> UIColor {
return UIColor(red: (prop1 * 5)/255.0, green: prop2/255.0, blue: (prop3/2)/255.0, alpha: 1)
}
您可以在基类中定义prop1、prop2、prop3和函数,每个类都可以覆盖该基类并为属性设置自己的值。不需要重写该函数
3) 如果计算颜色的公式对于每个类都不同,您可以尝试创建一个定义此函数和属性的协议。从该属性继承的每个类都必须提供自己的公式实现
您可以根据需要选择适当的解决方案
我希望这有帮助 为其添加swift文件名UIColorExt.swift:
import UIKit
class func RGB(r: CGFloat, _ g: CGFloat, _ b: CGFloat, _ alpha: CGFloat = 1.0) -> UIColor{
return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: alpha)
}
用法:
view.backgroundColor = UIColor.RGB(204, 119, 70)