LoginSignup
1
1

More than 5 years have passed since last update.

[ Swift ] UIColor の色を増やす[ extension クラスを用いて拡張する](初心者向け) 光の三原色(RGB)の割合を使う。

Posted at

[Swift] 光の三原色(RGB)の割合を用いてUIColor に独自の色を追加する

  • 何故16進数でやらないのか?
    元々、私自身 こちらの記事でUiColor の拡張をしようとしてみたのですが、今のSwiftにはUIColorにrgbColorの拡張子がないみたいです。 また、16進数よりも中学生くらいの時に習った光の三原色を使用したほうが皆さんにわかりやすいかなと思いました!

準備

UIColor に独自の色を付け加えていくので、色を反映するのとは別にextension File をお作りください。


サンプルコード(etension側)

Etension.swift
import UIKit

extension UIColor{
    // オリジナルのカラーを生成します。割合については下の方の参考の部分でURLを載せておきます!
    //オレンジ
    class func OrangeColor()->UIColor{
        let Black = UIColor.init(red: 1.0, green: 0.6, blue: 0, alpha: 1.0)
        return Black
    }
    //ミドリ
    class func GreenColor()->UIColor{
        let Black = UIColor.init(red: 0.0, green: 1.0, blue: 0.6, alpha: 1.0)
        return Black
    }
    //ピンク
    class func PinkColor()->UIColor{
        let Black = UIColor.init(red: 1.0, green: 0.6, blue: 1.0, alpha: 1.0)
        return Black
    }
}



サンプルコード(使用側)

ViewController
    //雑で申し訳ないですが簡単に使い方だけ
    //extension で拡張したclass  が使用できるようになります!
    //万一出なかった場合は下の方を試してみてください!
    UILabel.textColor = UIColor.PurpleColor()


もし上手くいかなかった場合。

理由はよくわかりませんですが、私もたまにUIColor にうまく拡張できていない場合がありました。
そうい言うときは下記のようにワンクッション置くとうまく行ったのでお試しください

Extension
import UIKit


class ColorComPonent:UIColor{
   //ワンクッションの作業

}
// ワンクッション置いたためUIColor ではなく ColorComPonent の拡張子を広げてあげる
extension ColorComPonent{
    // オリジナル

    class func OrangeColor()->UIColor{
        let Black = UIColor.init(red: 1.0, green: 0.6, blue: 0, alpha: 1.0)
        return Black
    }
    class func GreenColor()->UIColor{
        let Black = UIColor.init(red: 0.0, green: 1.0, blue: 0.6, alpha: 1.0)
        return Black
    }
    class func PinkColor()->UIColor{
        let Black = UIColor.init(red: 1.0, green: 0.6, blue: 1.0, alpha: 1.0)
        return Black
    }

}

** この場合だと使用する側のコードも変わります**

ViewController
    //UIColor ではなく ColorComPonent を使う
   UILabel.textColor = ColorComPonent.GreenColor()

終わりに

いかがだったでしょうか?
うまくいきましたか?何かへんなところ、もっとこうした方が良いところなどがございましたらコメントお願いします!!!!
ありがとうございました!

参考

光の三原色の割合について

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1