티스토리 뷰
가끔 일을 하다보면 UIColor를 hex 값으로 처리해줘야 하는 경우가 있습니다.
이때를 위해 간단하게 함수를 추가해서 이용해봅시다.
*아래 함수는 alpha 값까지 표기해주셔야하는 함수입니다*
import Foundation
import UIKit
extension UIColor {
public convenience init?(hex: String) {
let r, g, b, a: CGFloat
if hex.hasPrefix("#") {
let start = hex.index(hex.startIndex, offsetBy: 1)
let hexColor = String(hex[start...])
if hexColor.count == 8 {
let scanner = Scanner(string: hexColor)
var hexNumber: UInt64 = 0
if scanner.scanHexInt64(&hexNumber) {
r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255
b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255
a = CGFloat(hexNumber & 0x000000ff) / 255
self.init(red: r, green: g, blue: b, alpha: a)
return
}
}
}
return nil
}
func toHexStr() -> String {
var r:CGFloat = 0
var g:CGFloat = 0
var b:CGFloat = 0
var a:CGFloat = 0
getRed(&r, green: &g, blue: &b, alpha: &a)
let rgb:Int = (Int)(r*255)<<16 | (Int)(g*255)<<8 | (Int)(b*255)<<0
return NSString(format:"#%06x", rgb) as String
}
}
사용법
let makeBlue = UIColor(hex: "#8292C9FF") // alpha 값 (FF)까지 넣어주셔야 작동하는 함수입니다!!!
makeBlue?.toHexStr() // 해당 값을 hex로 출력
사용하실때 alpha (투명도) 값을 잊지말고 입력해줘야합니다.
안 넣으면 nil 이 나옵니다!!
사실 복잡하거나 어려운 함수는 아닙니다만
혹시 모를 상황을 위해 올려봅니다.
오늘도 파이팅입니다!
'iOS개발 > Swift 기본' 카테고리의 다른 글
Swift 알림창(UIAlertController) 띄우기 (0) | 2022.11.03 |
---|---|
Swift Date <-> String 타입 변경하기 (0) | 2022.10.14 |
Swift 내 앱 버전 알아보기 (0) | 2022.09.23 |
Swift 모델명 알아내기 (0) | 2022.09.23 |
Swift 알아두면 편한 날짜 비교 관련 함수 (0) | 2022.09.23 |
댓글