2016-01-13 3 views
1

У меня есть этот массив UIColors здесьМассив UIColor подстрочный индекс выпуска

let newLayer = CALayer() 

let barColors = [ 
    //Red 
    UIColor(red: 0.969, green: 0.49, blue: 0.443, alpha: 1), 
    //Orange 
    UIColor(red: 0.984, green: 0.647, blue: 0.431, alpha: 1), 
    //Pink 
    UIColor(red: 0.894, green: 0.592, blue: 0.698, alpha: 1), 
    //Purple 
    UIColor(red: 0.851, green: 0.6, blue: 0.957, alpha: 1), 
    //Yellow 
    UIColor(red: 0.98, green: 0.875, blue: 0.455, alpha: 1), 
    //Green 
    UIColor(red: 0.49, green: 0.792, blue: 0.616, alpha: 1), 
    //Blue 
    UIColor(red: 0.553, green: 0.71, blue: 0.906, alpha: 1)] 

При попытке присвоить мой newLayer цвет фона в один из UIColors в массиве с этим:

newLayer.backgroundColor = barColors[0] 

I получите сообщение об ошибке cannot subscript a value of type '[UIColor]'. Любые идеи, почему я получаю эту ошибку и как ее исправить?

+5

'' CALayers's backgroundColor' свойство является 'CGColor', а не' UIColor ' –

+0

Мне очень любопытно, почему компилятор Swift считает, что это проблема с индексами ... Возможно, он думает, что программист может« модифицировать »код структуры Swift' Array 'так, чтобы его« индекс »возвращал ожидаемый экземпляры 'CGColor'? –

ответ

2

Ошибка обман. backgroundColor Недвижимость CALayer ожидает значение типа CGColor не UIColor.

Вы можете получить CGColor значение из UIColor:

newLayer.backgroundColor = barColors[0].CGColor 
1

Попробуйте

newLayer.backgroundColor = barColors[0].CGColor 

потому CALayer'sbackgroundColor свойство принимает CGColor значение вместо UIColor

+0

безупречный спасибо! – OriginalAlchemist

-1

Попробуйте это, я думаю, Это поможет вам, если вы хотите установить цвет фона вида viewcontroller.

let newLayer = CALayer() 

    let barColors = [ 
     //Red 
     UIColor(red: 0.969, green: 0.49, blue: 0.443, alpha: 1), 
     //Orange 
     UIColor(red: 0.984, green: 0.647, blue: 0.431, alpha: 1), 
     //Pink 
     UIColor(red: 0.894, green: 0.592, blue: 0.698, alpha: 1), 
     //Purple 
     UIColor(red: 0.851, green: 0.6, blue: 0.957, alpha: 1), 
     //Yellow 
     UIColor(red: 0.98, green: 0.875, blue: 0.455, alpha: 1), 
     //Green 
     UIColor(red: 0.49, green: 0.792, blue: 0.616, alpha: 1), 
     //Blue 
     UIColor(red: 0.553, green: 0.71, blue: 0.906, alpha: 1)] 
    self.viewIfLoaded?.backgroundColor = barColors[0]; // index for color 

Кроме того, если вы хотите setbackground цвет для слоя зрения, то найти код ниже поможет

newLayer.backgroundColor = barColors[0].CGColor; 
Смежные вопросы