UIColor 확장을 통한 편리한 사용

6845 단어 Swift
UIView 배경색 등 색상을 설정할 때는 UIColor에서 자주 사용하지만미리 정의된 색상 사용자 정의 색상으로 바뀌면 좀 불편한데...
let view = UIView()

// Predefined Color
view.backgroundColor = UIColor.red

// カスタムカラーだとRGBAで指定することが多い
view.backgroundColor = UIColor(red: 0, green: 0, blue: 1.0, alpha: 1.0)
RGBA가 지정하는 방법을 자주 사용하지만, 웹에서 색을 줍을 때, 디자이너가 색을 지정할 때 16진수 색 코드도 많다.나는 그곳에서 UIColor의 확장을 많이 했다.

색상 지정


16진수 컬러 코드로 UIColor 확장을 지정할 수 있습니다.이렇게 되면 위의 번뇌는 잠시 해결되었다.
extension UIColor {
    /// 16進カラーコードでカラーを生成
    ///
    /// - Parameters:
    ///   - hex: 16進カラーコード
    ///   - alpha: アルファ値
    convenience init(hex: UInt, alpha: CGFloat = 1.0) {
        let red: CGFloat = CGFloat((hex & 0xFF0000) >> 16) / 255.0
        let green: CGFloat = CGFloat((hex & 0x00FF00) >> 8) / 255.0
        let blue: CGFloat = CGFloat(hex & 0x0000FF) / 255.0
        self.init(red: red, green: green, blue: blue, alpha: alpha)
    }
}

// 16進カラーコードで初期化できる (アルファ値はオプション)
view.backgroundColor = UIColor(hex: 0xFF1493)

색 소양에서 사용자 정의 색 정의


컬러 코드의 확장은 확실히 편리하지만 매번 컬러 코드를 입력해야 한다.자주 사용하는 색상을 사용자 정의 색상으로 정의하는 경우 시스템 색상을 참조할 수 있습니다.
여기서 주목받는 것은 엑스코드 8부터 활용할 수 있는'색상 능력'이라는 보완 기능이다.이것을 사용하면 원본 코드에 직접 색을 표시할 수 있습니다.color를 입력하면 보완 후보Color Literal가 표시됩니다.팔레트를 두 번 클릭하면 팔레트가 표시되어 변경이 가능하여 매우 편리합니다!
Other...를 선택하면 컬러 코드 등 자세한 설정도 가능합니다.

총결산


앱 개발을 할 때는 곳곳에서 사용자 정의 색상을 설정해야 하지만 미리 정의된 색상과 RGBA의 초기화 외에도 편리한 UIColor의 확장을 시도했다.컬러 코드 지정과 컬러 문자의 사용자 정의 정의를 사용하면 매우 편리하여 앞으로 적극적으로 사용할 것입니다.

보태다


16진수 컬러 인코딩에서 RGB 값은 어떻게 꺼냅니까?(hex & 0xFF0000) >> 16우선 기본 지식
연산자
설명
비트 AND&2진법으로 논리적 축적을 구하다.(예제)0b1010 & 0b0110에서 비트당 AND0b0010변위 연산<<, >>바이너리의 위치를 지정한 양으로 좌우로 이동합니다.(예) 0b11110010 >> 40b1111그걸 토대로 다시 한 번 (hex & 0xFF0000) >> 16보면...
let hex = 0xFF1493     // 2進数: 0b111111110001010010010011
let hexR = 0xFF0000    // 2進数: 0b111111110000000000000000

hex & hexR             // ビットANDでRチャンネルがフィルターされる: 0b111111110000000000000000
(hex & hexR) >> 16     // 右ビットシフト演算でRチャンネル値を取り出す: 0b11111111 (255)
다른 채널의 값도 비트 AND 연산과 오른쪽 비트 시프트 연산을 통해 RGB 각각의 필터를 컬러 코드에 적용해 오타가 발생하게 한다.

참고 자료

  • 컬러 코드로 iOS를 설정하는 UIColor. - 어떻게든 해보면 방법이 있을 거예요.
  • Xcode 8의 새로운 기능!이미지와 색의 소양, 이미지의 코드 보완
  • 비트 연산
  • 좋은 웹페이지 즐겨찾기