2015-04-06 4 views
18

Я пытаюсь создать таможню RGBCGColor используя swift для использования в качестве цвета рамки для UIButton. Я пробовал следующий код, но цвет не виден:Как я могу получить cgcolor из значений RGB?

var red = UIColor(red: 100.0, green: 130.0, blue: 230.0, alpha: 1.0) 
self.layer.borderColor = red.CGColor 

Есть ли способ, чтобы создать CGColor непосредственно из значений RGB?

+0

Это также смущает меня, глядя на документы, я пытался использовать CGColor (красный: .., зеленый: .., синий: .., alpha: ..) Однако сразу после перечитывания его я увидел, что этот конструктор недоступен в iOS. Почему эти различия? И как я могу написать код, который работает на Mac и iOS? – Nils

ответ

46

Вы должны указать значения от 0 до 1,0. Таким образом, разделить значения RGB 255.

изменить свой код

var red = UIColor(red: 100.0/255.0, green: 130.0/255.0, blue: 230.0/255.0, alpha: 1.0) 
self.layer.borderColor = red.CGColor 
+0

@Divz Спасибо :) – Shruti

+0

@alionthego ваш прием :). Пожалуйста, примите ответ, если это было полезно и решило вашу проблему. – Shruti

+0

привет. просто принял это. хотел принять раньше, но это заставило меня подождать 5 минут по какой-то причине ... еще раз спасибо. – alionthego

0

Может быть, все, что вам нужно, это установить borderWidth, по умолчанию это 0, так что не видно:

self.layer.borderWidth = 1.0 

Только в случае, если вы можете установить cornerRadius, если вам это нужно закругленные ... может быть полезно ;-)

self.layer.cornerRadius = 4.0 
+0

@Shruti правильно относится к значениям 'CGFloat', которые вы должны передать UICcolor (...) –

+0

привет. Спасибо за ваш ответ. Я уже установил borderWidth. Ответ выше, разделив значения на 255, был решением, которое я искал. спасибо. – alionthego

5

В Mac OS X есть CGColorCreateGenericRGB(), но он не существует на iOS. Однако вы можете использовать CGColorCreate с соответствующими параметрами.

self.layer.borderColor = CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 0.5, 0.5, 1.0]) 

Значения в массиве в порядке их появления: красный, зеленый, синий и альфа. Так же, как UIColor :)

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGColor/#//apple_ref/c/func/CGColorCreate

+0

спасибо большое. Я действительно нашел этот метод в документации, но работал с iOS. Мне было интересно, почему я не смог его использовать, но теперь вы ясно дали понять, что он доступен только для os x. Благодарю. – alionthego

1
UImage *newImage = [self imageWithColor:[UIColor colorWithRed:200/255. green:228/255. blue:194/255. alpha:0.99]]; 
1

Вы можете получить, что вплоть до одной линии в Swift 3:

avLayer.backgroundColor = UIColor.red.CGColor 

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

  • Нет связанных вопросов^_^