[ios] Swift에서 UIColorFromRGB를 어떻게 사용할 수 있습니까?

Objective-C에서는이 코드를 사용하여 뷰에 대한 RGB 색상 코드를 설정합니다.

#define UIColorFromRGB(rgbValue)
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

view.backgroundColor=UIColorFromRGB(0x209624);

Swift에서 어떻게 사용할 수 있습니까?



답변

다음은 해당 함수의 Swift 버전입니다 ( UInt값 의 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(0x209624)


답변

나는 넣고 싶었다

cell.backgroundColor = UIColor.colorWithRed(125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0)  

그러나 그것은 작동하지 않았습니다.

그래서 사용했습니다 :
For Swift

cell.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)  

그래서 이것이 제가 찾은 해결 방법입니다.


답변

나는 Nate Cook의 대답을 정말 좋아했지만 조금 더 관용적 인 것을 원했습니다. 나는 이것이 사용자 정의 확장을 통한 편의 이니셜 라이저에 대한 정말 좋은 사용 사례라고 생각합니다.

// UIColorExtensions.swift
import Foundation
import UIKit

extension UIColor {
    convenience init(rgb: UInt) {
        self.init(
            red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0,
            green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0,
            blue: CGFloat(rgb & 0x0000FF) / 255.0,
            alpha: CGFloat(1.0)
        )
    }
}

이제 다음과 같이 사용할 수 있습니다.

view.backgroundColor = UIColor(rgb: 0x209624)

라이브러리가 아닌 클라이언트 코드에서 이와 같은 UIKit 클래스를 원숭이 패치하는 것이 좋습니다.


답변

myLabel.backgroundColor = UIColor(red: 50.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)


답변

프로그래밍 방식으로 색상을 추가하는 가장 간단한 방법은 ColorLiteral 을 사용하는 입니다.

예제와 같이 ColorLiteral 속성을 추가하면 Xcode에서 선택할 수있는 전체 색상 목록을 표시합니다. 이렇게하면 코드가 적고 HEX 값 또는 RGB를 추가 할 수 있다는 장점이 있습니다 . 또한 스토리 보드에서 최근에 사용한 색상을 얻을 수 있습니다.

예 :
self.view.backgroundColor = ColorLiteral여기에 이미지 설명 입력


답변

16 진수가 아닌 문자열에서 시작하는 경우 16 진수 문자열을 가져와 UIColor를 반환하는 함수입니다.
(형식 : #ffffff또는 으로 16 진수 문자열을 입력 할 수 있습니다. ffffff)

용법:

var color1 = hexStringToUIColor("#d3d3d3")

스위프트 4 :

func hexStringToUIColor (hex:String) -> UIColor {
    var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()

    if (cString.hasPrefix("#")) {
        cString.remove(at: cString.startIndex)
    }

    if ((cString.count) != 6) {
        return UIColor.gray
    }

    var rgbValue:UInt32 = 0
    Scanner(string: cString).scanHexInt32(&rgbValue)

    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)
    )
}

스위프트 3 :

func hexStringToUIColor (hex:String) -> UIColor {
    var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()

    if (cString.hasPrefix("#")) {
        cString.remove(at: cString.startIndex)
    }

    if ((cString.characters.count) != 6) {
        return UIColor.gray
    }

    var rgbValue:UInt32 = 0
    Scanner(string: cString).scanHexInt32(&rgbValue)

    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)
    )
}

스위프트 2 :

func hexStringToUIColor (hex:String) -> UIColor {
    var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet() as NSCharacterSet).uppercaseString

    if (cString.hasPrefix("#")) {
      cString = cString.substringFromIndex(cString.startIndex.advancedBy(1))
    }

    if ((cString.characters.count) != 6) {
      return UIColor.grayColor()
    }

    var rgbValue:UInt32 = 0
    NSScanner(string: cString).scanHexInt(&rgbValue)

    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)
    )
}


출처 : arshad / gist : de147c42d7b3063ef7bc


답변

들어 엑스 코드 9 사용하는 UIColorRGB 값과.

shareBtn.backgroundColor = UIColor( red: CGFloat(92/255.0), green: CGFloat(203/255.0), blue: CGFloat(207/255.0), alpha: CGFloat(1.0) )

시사:

사용자 정의 RGB 색상으로 버튼 미리보기

UIColor에 대한 추가 Apple 문서를 참조하십시오 .