[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를 추가 할 수 있다는 장점이 있습니다 . 또한 스토리 보드에서 최근에 사용한 색상을 얻을 수 있습니다.
답변
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)
)
}
답변
들어 엑스 코드 9 사용하는 UIColor
RGB 값과.
shareBtn.backgroundColor = UIColor( red: CGFloat(92/255.0), green: CGFloat(203/255.0), blue: CGFloat(207/255.0), alpha: CGFloat(1.0) )
시사:
UIColor에 대한 추가 Apple 문서를 참조하십시오 .