gpt4 book ai didi

ios - Swift:如何将经常使用的代码放在一个地方以便重用?

转载 作者:行者123 更新时间:2023-11-28 09:35:29 24 4
gpt4 key购买 nike

我仍在努力掌握所有这些编程概念,我有一个简单的 UIView 和 rgb 颜色,我在许多不同的 View 上使用它。

现在我仍在对每个 View 中的颜色进行硬编码:

UIColor(red: 120/255, green: 51/255, blue: 2/255, alpha: 1.0

但我想创建一个单独的 swift 文件(例如称为 Colors.swift),我想把所有颜色都放在那里。

现在,在每个单独的 View 中,我只想从该文件中获取颜色,这样我就只有一个地方可以根据需要更改颜色。

我知道如何在 swift 文件中创建一个函数并从另一个地方调用它。例如,我重复使用的所有动画都放在一个文件中,但是对于那些颜色我有一个停电。我不知道如何将它们放入另一个文件并将它们从那里取出。完美的是某种具有不同命名颜色(蓝色,绿色,......)及其相应的 rgb 值的开关盒,这样我就可以调用颜色的名称来获取它。这将是我创建的一个 swift 文件:

import UIKit

let myColors = UIColor()

switch myColors {
case .red:
UIColor(red: 120/255, green: 51/255, blue: 2/255, alpha: 1.0)
case .gray:
UIColor(red: 120/255, green: 120/255, blue: 120/255, alpha: 1.0)
default:
UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 1.0)
}

但是当我在一个 swift 文件中写一个 switch 语句时,我无法让它工作。我得到的错误是“顶层不允许语句”,每种情况都会得到错误“UIColor 初始化程序的结果未使用”,但我看不到办法把它放在什么东西里?

也许整个方法是错误的?

最佳答案

您可以使用 Swift 扩展来实现此功能。

// Colors.swift
extension UIColor {

var myCustomRed: UIColor {
return UIColor(red: 120/255, green: 51/255, blue: 2/255, alpha: 1.0)
}
}

// elsewhere in the app
view.backgroundColor = UIColor.myCustomRed

您可以根据需要在其中放置任意数量的自定义实现,但要注意不要使用与现有颜色冲突的名称。

有关更多信息,请参阅文档 Swift Extensions Documentation

更新:

enum ThemeColors: UIColor {
case red = UIColor(red: 120/255, green: 51/255, blue: 2/255, alpha: 1.0)
case blue = UIColor(red: 2/255, green: 51/255, blue: 120/255, alpha: 1.0)
}

view.backgroundColor = ThemeColors.red

关于ios - Swift:如何将经常使用的代码放在一个地方以便重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632485/

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