2016-10-28 79 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

相关问题