在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);
Run Code Online (Sandbox Code Playgroud)
我如何在Swift中使用它?
Nat*_*ook 168
这是该函数的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)
Run Code Online (Sandbox Code Playgroud)
use*_*627 124
我想放
cell.backgroundColor = UIColor.colorWithRed(125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)
但那没用.
所以我用过:
对于Swift
cell.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)
所以这是我找到的解决方法.
blo*_*ilk 62
我真的很喜欢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)
)
}
}
Run Code Online (Sandbox Code Playgroud)
现在可以这样使用:
view.backgroundColor = UIColor(rgb: 0x209624)
Run Code Online (Sandbox Code Playgroud)
我只建议猴子在你自己的客户端代码中修补这样的UIKit类,而不是库.
小智 45
myLabel.backgroundColor = UIColor(red: 50.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)
小智 32
以编程方式添加颜色的最简单方法是使用ColorLiteral.
只需添加属性ColorLiteral,如示例所示,Xcode将提示您可以选择的整个颜色列表.这样做的好处是代码较少,添加HEX值或RGB.您还将从故事板中获取最近使用的颜色.
示例:
self.view.backgroundColor = ColorLiteral
Eth*_*der 28
如果你是从一个字符串(而不是十六进制)开始,这是一个采用十六进制字符串并返回UIColor的函数.
(您可以使用以下任一格式输入十六进制字符串:#ffffff
或ffffff
)
用法:
var color1 = hexStringToUIColor("#d3d3d3")
Run Code Online (Sandbox Code Playgroud)
斯威夫特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)
)
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特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)
)
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特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)
)
}
Run Code Online (Sandbox Code Playgroud)
资料来源:arshad/gist:de147c42d7b3063ef7bc
Con*_*ena 12
对于Xcode 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) )
Run Code Online (Sandbox Code Playgroud)
预习:
请参阅有关UIColor的其他Apple文档.
Mah*_*ari 10
button.layer.backgroundColor = UIColor(red: 112.0/255, green: 86.0/255, blue: 164.0/255, alpha: 1.0).cgColor
Run Code Online (Sandbox Code Playgroud)
https://uiwjs.github.io/ui-color/
斯威夫特用户界面
Color(red: 1.33, green: 0.56, blue: 0.56).opacity(0.61)
Run Code Online (Sandbox Code Playgroud)
适用于 iOS 的 Swift
UIColor(red: 1.33, green: 0.56, blue: 0.56, alpha: 0.61)
Run Code Online (Sandbox Code Playgroud)
适用于 macOS 的 Swift
NSColor(red: 1.33, green: 0.56, blue: 0.56, alpha: 0.61)
Run Code Online (Sandbox Code Playgroud)
适用于 iOS 的 Objective-C
[UIColor colorWithRed: 1.33 green: 0.56 blue: 0.56 alpha: 0.61];
Run Code Online (Sandbox Code Playgroud)
适用于 macOS 的 Objective-C
[NSColor colorWithCalibratedRed: 1.33 green: 0.56 blue: 0.56 alpha: 0.61];
Run Code Online (Sandbox Code Playgroud)
我在swift中使用了以下内容.
let appRedColor = UIColor(red: 200.0/255.0, green: 16.0/255.0, blue: 46.0/255.0, alpha: 1.0)
let appSilverColor = UIColor(red: 236.0/255.0, green: 236.0/255.0, blue: 236.0/255.0, alpha: 1.0)
let appWhiteColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1.0)
let appNavyColor = UIColor(red: 19.0/255.0, green: 41.0/255.0, blue: 75.0/255.0, alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
177066 次 |
最近记录: |