Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置边框的颜色数组_Ios_Objective C - Fatal编程技术网

Ios 如何设置边框的颜色数组

Ios 如何设置边框的颜色数组,ios,objective-c,Ios,Objective C,在这里,我试图设置用户配置文件图标边框的多种颜色 CAGradientLayer *layer2 = [CAGradientLayer layer]; NSArray *colors = [NSArray arrayWithObjects: (id)[UIColor whiteColor].CGColor,

在这里,我试图设置用户配置文件图标边框的多种颜色

                CAGradientLayer *layer2 = [CAGradientLayer layer];
                NSArray *colors = [NSArray arrayWithObjects:
                                   (id)[UIColor whiteColor].CGColor,
                                   (id)[UIColor redColor].CGColor,
                                   nil];
下面的行给了我错误我想通过从数组中添加颜色来设置它的边框颜色,但它给了我错误。我如何将颜色数组传递给setBorderColor:method

                [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!

您混淆了
颜色
边框颜色
属性<代码>颜色属性可以为具有多种颜色的整个图层设置,但是,
borderColor
不接受
CGColor
数组

以下是API文档中的屏幕截图:

因此,
setBorderColor
只接受
CGColor
,但您正在分配一个
NSArray
borderColor
属性只能由单个
CGColor
设置

但是,如果要将单个
CGColor
添加到数组的边框颜色,可以执行以下操作。只需在数组中存储
UIColor

NSArray *colors = [NSArray arrayWithObjects:
                   [UIColor whiteColor],
                   [UIColor redColor],
                   nil];
当您尝试设置为图层时,请执行以下操作:

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

您可以将
颜色。firstObject
替换为
颜色[0]
颜色[1]
,具体取决于您需要的颜色。

查看其他一些已经解决了这个问题的问题,比如,或者我已经检查了它们,并且没有传递数组,因为只有一种颜色@Tj3nAnd?您是否遵循了其中的答案?是的,他们正在向setBorderColor:方法传递单一颜色,而不是数组@Tj3n@Tj3n已经在他的第一条评论中为你推荐了链接。我希望两种颜色在同一个边框中,这就是我使用渐变的原因,我不打算使用数组中的一个接一个,我希望同时使用这两种颜色。谢谢你的帮助,但我希望在边框中同时使用两种颜色。