Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > UIColorを16進から取得

UIColorを16進から取得

UIColorを標準の方法で作成するとRGBを1.0 = 255として計算する必要がありますので面倒くさいです。 使わなかったらこんな感じ。

swift-salaryman.head.backgroundColor = UIColor(red: 0.5, green: 128/255.0, blue: 0.5, alpha: 1.0);

これだとPhotoshop等で「#34fg45」なんてカラーコードを利用しようと計算する必要がでてしまい面倒くさいです。 ということでカラーコードをそのまま16進数で利用できる方法を調べてみました。

参考:Color Codes(色をRGBの%でリストしているサイトです)

UIColorFromRGB

こちらにドンピシャな関数がありました。
参考:How to use UIColorFromRGB value in Swift


//UIntに16進で数値をいれるとUIColorが戻る関数
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)
    )
}
//こんな感じで利用します。
view.backgroundColor = UIColorFromRGB(0x123456)

UIColorUtil.swift例文

UIColorUtil.swiftをダウンロードする。(ご自由にご利用ください)

上記を参考にしてswiftのユーティリティを作成しました。


import UIKit

struct UIColorUtil {
    static func rgb(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)
    )
}
}

//利用方法
let mycolor = UIColorUtil.rgb(0x123456);

Extentionにしていつでも利用できるようにする(追記:20141208)

上記はUtilityにして利用している状態ですが、これをUIColorのextensionとして事前にセットしておけば、いつでも今後利用できるようにもなります。
参考:How to use UIColorFromRGB value in Swift


参考:SwiftでHexColor(#34495eみたいなやつ)


//UIColorのextensionとして登録しておく
extension UIColor {
    class func hex (var hexStr : NSString, var alpha : CGFloat) -> UIColor {
        hexStr = hexStr.stringByReplacingOccurrencesOfString("#", withString: "")
        let scanner = NSScanner(string: hexStr)
        var color: UInt32 = 0
        if scanner.scanHexInt(&color) {
            let r = CGFloat((color & 0xFF0000) >> 16) / 255.0
            let g = CGFloat((color & 0x00FF00) >> 8) / 255.0
            let b = CGFloat(color & 0x0000FF) / 255.0
            return UIColor(red:r,green:g,blue:b,alpha:alpha)
        } else {
            print("invalid hex string")
            return UIColor.whiteColor();
        }
    }
}
//以下のような形で実行します。
UIColor.hex("45fb4b", alpha: 0.8)

extensionの登録方法は簡単で、swiftのファイルの中に上記のようなコードを貼り付けてプロジェクトに入れておくだけです。例えば、extentions.swiftというファイルを作成して それをプロジェクトの中に含めておくだけでUIColorに対して登録されたことになります。

画像からUIColorを取り出す (追記:2015/1/15)

ピクセル色探し

画像からピクセルの色情報取得 - ピクセルから色をゲット方法はこちらから!

↓こんな記事もありますよ!

SqliteのDBファイル保存+レビュー却下

2回既にレビューを通過していたアプリが、バイナリレビューで却下されてしまいました。理由は、2.23 Details On launch and content download, your app stores 26.48MB on the user's iCloud, which does not comply with the iOS Data Storage となっていてiCouldに保存される量にしては多いから管理してください、といった旨の内容でした。別に却下理由に難癖つけるつもりではないのですが、最初のレビュー時にいってほしい。。。

UITableViewCellをプログラムで動的に作成する

UITableViewをStoryboardで作成する方法は結構ありますが、プログラムだけで作成するサンプルが少なかったので共有します。

willsetとdidsetでプロパティを監視。意味あるのか???

クラスのプロパティにはWillsetとdidsetという監視用の関数があると聞いたのですが、用途は分かるにしても メリットとしてはどういうものなのかなと、うーん、と考えていました。調べていると海外のサイトでは同じように疑問にもつ質問があがっていました。 getとsetで同じことができるのでは?との私と同じスタンスです。解決されていましたので、順に説明していきます。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!