簡體   English   中英

如何定義可通過編程方式和在 IB 中使用的自定義顏色?

[英]How Can I Define a Custom Color That Is Available Both Programmatically And In IB?

我希望能夠在一個地方定義自定義顏色,然后以編程方式和在 Interface Builder 中訪問它。 對於編碼,我可以創建一個 UIColor 擴展。 對於 IB 中的視覺設計,我可以創建自定義調色板。 同時使用兩者的最佳技術是什么?

不幸的是,你不能這樣做。

您可以定義一種顏色,您可以通過 UIColor 的擴展在代碼中訪問該顏色。 或者,您可以在 Interfact Builder 中為托盤添加顏色。

但你不能兩者兼得。

嗯...

你可以做的事情類似於 PaintCode 所做的事情。

在代碼中創建一個具有 IBOutletCollection 的對象,然后當視圖加載時,它將迭代出口並將背景顏色等設置為您喜歡的顏色。

Xcode 9 允許您在資產目錄中放置顏色。 這是 Apple 對那些希望在兩者之間同步顏色的人的回答。

從 Xcode 11 開始

使用顏色名稱創建顏色集,您可以在代碼和 Interface Builder 中通過顏色名稱訪問它們。

  1. 在 Interface Builder 中創建一個新的顏色集
  2. 以編程方式引用命名顏色集,例如: UIColor(named: "fooColorSet")

參考: https : //medium.com/bobo-shone/how-to-use-named-color-in-xcode-9-d7149d270a16

如果你有一個可變的顏色,你也可以創建一個 UIView 的子類:

class color01_view:UIView {
let color01:UIColor = UIColor(red: 250.0/255.0, green: 250.0/255.0, blue: 250.0/255.0, alpha: 1)

required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.backgroundColor = color01

    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM