2017-02-06 2 views
1

У меня есть следующий код внутри кнопки, который успешно меняет взгляд в цвет фона:Пользовательский NSColor?

func bgcol() { 
    self.view.layer?.backgroundColor = NSColor.blue.cgColor 
} 

Я хотел бы изменить цвет в цвет пользовательский RGB, но все, что я нашел, кажется, использует цвет пользовательского интерфейса, который, как я полагаю, предназначен только для iOS?

Я также посмотрел на документацию для NSColor, но как новичок полной, я, к сожалению, не могу понять :(

Может кто-то пожалуйста, скажите мне, как я могу изменить мой код, чтобы использовать пользовательский цвет RGB.

Спасибо всем заранее

UPDATE:. теперь у меня есть этот код, - но ничего не изменилось :(:

func bgcol() { 
    let customColor = NSColor(red: 99.0, green: 0.0, blue: 0.0, alpha: 1.0) 
    self.view.layer?.backgroundColor = customColor.cgColor 
} 

UPDATE 2: Ok, в файле viewController.swift У меня есть следующий код вблизи верхней:

func bgcol() { 
let customColor = NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) 
self.view.layer?.backgroundColor = customColor.cgColor} 

Затем в VIEW DID НАГРУЗКИ() Я называю

bgcol() 

Позволяет сказать Например, я хочу, чтобы цвет был r220 g123 b45, я понятия не имею, как установить это как цвет фона?

Будучи совершенно новым, синтаксис долбанные меня :(

+0

Показать где вы вызываете 'bgcol()'. – shallowThought

+0

View did load() –

+0

try 'viewDidAppear()'. Чтобы преобразовать ваши значения с 0..255 в 0..1, просто перейдите на 255 (r220 -> 220/255). – shallowThought

ответ

1

Command + нажмите NSColor, чтобы увидеть, что он предлагает:

/* Create NSCustomColorSpace colors that are compatible with sRGB colorspace; these variants are provided for easier reuse of code that uses UIColor on iOS. It's typically better to specify the colorspace explicitly with one of the above methods. 

If red, green, blue, or saturation, brightness, or white values are outside of the 0..1 range, these will create colors in the extended sRGB (or for colorWithWhite:alpha:, extendedGenericGamma22GrayColorSpace) color spaces. This behavior is compatible with iOS UIColor. 
*/ 
@available(OSX 10.9, *) 
public /*not inherited*/ init(white: CGFloat, alpha: CGFloat) 

@available(OSX 10.9, *) 
public /*not inherited*/ init(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) 

@available(OSX 10.9, *) 
public /*not inherited*/ init(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) 

Вы могли бы использовать этот инициализатор:

let customColor = NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) 
+0

Хорошо, во-первых, большое спасибо за этот совет - но я, очевидно, что-то пропустил здесь :(У меня теперь есть этот код: func bgcol() { let customColor = NSColor (красный: 99,0, зеленый: 0.0, синий: 0.0 , alpha: 1.0) self.view.layer? .backgroundColor = customColor.cgColor } и ничего не изменилось? –

+0

Значения находятся между 0 и 1, а не 0 и 255. – jtbandes

+0

Значения от 0 ... 1. работайте в любом случае. Убедитесь, что вы вызываете его, когда слой существует, в 'viewWillAppear()' или такой. – shallowThought

Смежные вопросы