2016-10-28 72 views
-1

這裏我試圖將多種顏色設置爲用戶配置文件圖標邊框。如何將顏色數組設置爲邊框

   CAGradientLayer *layer2 = [CAGradientLayer layer]; 
       NSArray *colors = [NSArray arrayWithObjects: 
            (id)[UIColor whiteColor].CGColor, 
            (id)[UIColor redColor].CGColor, 
            nil]; 

下面一行是給我的錯誤,我想設置它的邊框顏色從陣列中添加顏色,但它給我,我error.How可以通過顏色的數組setBorderColor:方法。

   [layer2 setBorderColor:colors]; 

       //below code is working fine 
       [layer2 setFrame:cell.userIcon.layer.frame]; 
       [cell.userIcon.layer insertSublayer:layer2 atIndex:0]; 
       cell.userIcon.clipsToBounds = YES; // Important! 
+1

查看一些其他已經解決了這個問題的問題[this](http://stackoverflow.com/questions/15193993/how-to-make-a-gradient-border-of-uiview)或[this]( http://stackoverflow.com/questions/34528782/how-to-make-calayer-border-with-gradient-or-multiple-colors) – Tj3n

+0

我已經檢查過他們,沒有數組傳遞,只有一個單顏色@ Tj3n – vicky

+0

而?那裏你有答案嗎? – Tj3n

回答

0

您在混淆colorsborderColor屬性。 colors屬性可以設置爲具有多種顏色的整個圖層,但是,borderColor不接受CGColor的數組。

下面是從API文檔截圖:

enter image description here

所以,setBorderColor只接受CGColor,但你是不是分配的NSArrayborderColor物業可以只有由一個CGColor設置。

但是,如果您想將單個CGColor添加到數組中的邊框顏色,則可以執行以下操作。只需在陣列中存儲UIColor即可。

NSArray *colors = [NSArray arrayWithObjects: 
        [UIColor whiteColor], 
        [UIColor redColor], 
        nil]; 

而當你試圖設置一個圖層,執行以下操作:

[layer2 setBorderColor:((UIColor*)colors.firstObject).CGColor]; 

可以更換colors.firstObjectcolors[0]colors[1],取決於你所需要的顏色。

+0

我希望兩個顏色在相同的邊界多數民衆贊成我爲什麼使用漸變,我不打算從數組中使用一個我一次都希望他們兩個。 – vicky

+0

感謝您的幫助,但我想同時在邊界的兩種顏色。 – vicky

相關問題