gpt4 book ai didi

ios - 将在整个应用程序或类(class)中使用的颜色

转载 作者:可可西里 更新时间:2023-11-01 00:08:43 24 4
gpt4 key购买 nike

我正在努力提高我的面向对象技能,但我一直在争论是否需要上课。

我有一组 UIColors,我在不同的 ViewControllers 中的整个应用程序中不断使用它们,我最初是通过将它们添加为常量全局变量开始的,如下所示...

import UIKit
// Global COLORS
let myBlueColor = UIColor(red: 62.0/255, green: 174.0/255, blue: 206.0/255, alpha: 1.0)
// more global colors here...
class ViewController1{
// using my global color
myButton.layer.borderColor = myBlueColor.CGColor
}


// other viewController
import UIKit
class ViewController2{
// using my global color again
myButton2.layer.borderColor = myBlueColor.CGColor
}

但后来我决定创建一个类来强制自己以更定向的方式思考......

颜色等级

import Foundation
import UIKit

class Color {

var myBlueColor:UIColor{
get{
return UIColor(red: 62.0/255, green: 174.0/255, blue: 206.0/255, alpha: 1.0)
}
}
var myLightGrayColor:UIColor{
get{
return UIColor(red: 249.0/255, green: 249.0/255, blue: 249.0/255, alpha: 1.0)
}
}
var myGreenColor:UIColor{
get{
return UIColor(red: 110.0/255, green: 186.0/255, blue: 64.0/255, alpha: 1.0)
}
}
var myRedColor:UIColor{
get{
return UIColor(red: 247.0/255, green: 118.0/255, blue: 113.0/255, alpha: 1.0)
}
}
var myYellowColor:UIColor{
get{
return UIColor(red: 255.0/255, green: 190.0/255, blue: 106.0/255, alpha: 1.0)
}
}
}

View Controller

import UIKit
class ViewController1{

private var myColor = Color()

// some other code here...

myButton.layer.borderColor = myBlueColor.CGColor
}

其他 View Controller

import UIKit
class ViewController1{

private var myColor = Color()

// some other code here...

myButton2.layer.borderColor = myBlueColor.CGColor
}

我的面向对象是更好的方法吗?好吧,让我换个说法,这甚至是你如何以更面向对象的方式来做的吗?

我不知道,但仅使用 getter(计算属性)我的 Color 类看起来很奇怪。

任何改进我的代码的建议。

编辑:不是重复的,因为我更感兴趣的是改进我的面向对象的示例,而不是知道是否可以使用全局变量。

谢谢

最佳答案

绝对是个好主意,但您可以通过扩展 UIColor 并制作所有类函数来使其更加清晰,与内置 UIColor.whiteColor() 完全相同,等等

你可以这样做:

    extension UIColor {

class func peachColor() -> UIColor {
return UIColor(colorLiteralRed: 100.00 / 100.00, green: 92.9 / 100.0, blue: 65.9 / 100.0, alpha: 1.0)
}
...
}

然后,在您的应用程序的任何位置,您都可以说 UIColor.peachColor(),它会完美地工作。这些类扩展是一种简洁的方法,它可以让您避免在每个 View Controller 中放置 var myColor = Color()

关于ios - 将在整个应用程序或类(class)中使用的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35375566/

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