[英]What is the iOS equivalent of Android's colors.xml
在android中有一個XML文件作為res/values/colors.xml
,它允許您組織應用程序中使用的所有顏色。 像這樣:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#e60012</color>
<color name="blue">#33b5e5</color>
...
</resources>
在iOS中有這樣的東西嗎? 如果沒有,組織整個應用程序使用的顏色的最佳方法是什么?
我想最終能夠用[MyColor greenColor]
替換[UIColor greenColor]
[MyColor greenColor]
。
比以后更好......
對於Swift:
創建一個新類:MyColors.swift,它是UIColor類的擴展:
extension UIColor{
static func color1() -> UIColor{
return Utils.UIColorFromRGB(0x333333)
}
static func color2() -> UIColor{
return Utils.UIColorFromRGB(0xffffff)
}
}
在另一個類(可能是Utils.swift)這個函數:
class func UIColorFromRGB(rgbValue: UInt) -> UIColor {
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}
你可以像這樣使用它
(注意UIColor之后的括號)
:
tableView.backgroundColor = UIColor.color1()
Changed the functions to static so that the colors can be used like the normal iOS colors without creating an instance of UIColor. 將函數更改為靜態,以便可以像普通iOS顏色一樣使用顏色,而無需創建UIColor實例。
我沒有遇到像這樣的默認文件。 您可以創建自己的自定義.plist文件,該文件包含值,並在應用啟動時加載。 另一種選擇是為UIColor
創建一個Category,它有一堆類方法返回你想要的顏色。
您可以創建如下所示的內容:
UIColor+CustomColors.h
:
@interface UIColor (CustomColors)
+ (UIColor *)customColor1;
+ (UIColor *)customColor2;
...
@end
UIColor+CustomColors.m
:
#import "UIColor+CustomColors.h"
@implementation UIColor (CustomColors)
+ (UIColor *)customColor1 {
return [UIColor colorWithRed:1.0f green:0.5f blue:0.5f alpha:1.0f];
}
+ (UIColor *)customColor2 {
return [UIColor colorWithRed:1.0f green:0.5f blue:1.0f alpha:1.0f];
}
...
@end
然后在你設置背景的地方你可以得到這樣的東西:
ViewController.m
:
#import "UIColor+CustomColors.h"
...
view.backgroundColor = [UIColor customColor1];
從Xcode 9開始,您可以在資產目錄中定義顏色:
創建或使用現有資產目錄,然后單擊編輯器左下角的加號按鈕並選擇“新顏色集”:
您將看到一種名為“顏色”的新顏色。
單擊它,然后單擊以顯示屬性檢查器:
在這里,您可以定義顏色和許多其他選項。
雙擊名稱以更改顏色的名稱。
Sketch和Zeplin等設計工具允許您將設計海峽中的顏色導出為Xcode的顏色資源:
https://blog.zeplin.io/asset-catalog-colors-on-xcode-9-c4fdccc0381a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.