首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何按顺序为行分配3种不同颜色并颠倒顺序

如何按顺序为行分配3种不同颜色并颠倒顺序
EN

Stack Overflow用户
提问于 2015-10-15 12:01:26
回答 3查看 49关注 0票数 0

我正在设计一个应用程序,其中我使用表视图。这里我必须同时为tableview的单元格分配3种不同的颜色...在从下一行分配这些颜色后,问题来了,我必须再次以相反的顺序分配相同的颜色。例如,我有三种颜色,我需要分配这些颜色的顺序是:红-绿-蓝-蓝-绿-红-红-绿-蓝-蓝-绿-红……诸若此类。这里假设我们不知道有多少行,这个序列应该像这样继续下去。请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2015-10-15 12:39:34

将下面的数组声明为全局数组:

代码语言:javascript
运行
复制
 NSMutableArray *colorArray;

ViewDidLoad函数:

代码语言:javascript
运行
复制
 colorArray = [[NSMutableArray alloc] initWithObjects:[UIColor redColor],[UIColor greenColor],[UIColor blueColor],[UIColor blueColor], [UIColor greenColor], [UIColor redColor], nil];

cellForRowAtIndexPath方法:

代码语言:javascript
运行
复制
cell.backgroundColor = [colorArray objectAtIndex:indexPath.row % 5];

并完成:)。

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 12:57:24

您需要初始化一个颜色数组并在cellForRowAtIndexPath方法中使用,声明一个数组

代码语言:javascript
运行
复制
NSMutableArray *colors;

在did加载中

代码语言:javascript
运行
复制
color=[[NSMutableArray alloc]init];

在viewDidLoad中调用此方法

代码语言:javascript
运行
复制
-(void)initializeColorArray
{
UIColor *color1=[UIColor redColor];
UIColor *color2=[UIColor orangeColor];
UIColor *color3=[UIColor yellowColor];
NSArray *Listcolor = @[color1,color2,color3,color3,color2,color1];
for (int i=0; i<[tableData count]; i=i+[Listcolor count])
{
    for (int i=0; i<[Listcolor count]; i++)
    {
        [colors addObject:[Listcolor objectAtIndex:i]];
    }
}
NSLog(@"%@",color);
}

并使用颜色数组在cellForRowAtIndexPath方法中指定背景色

代码语言:javascript
运行
复制
cell.backgroundColor=[colors objectAtIndex:indexPath.row];

它会给出与您需要的Happy Coding相同的输出。:)

票数 0
EN

Stack Overflow用户

发布于 2015-10-15 13:35:49

非常简单但很棘手的问题

只需将此粘贴到cellForRowAtIndexPath中

代码语言:javascript
运行
复制
 cell.backgroundColor=[self colorForIndex];

和定义方法

代码语言:javascript
运行
复制
-(UIColor*)colorForIndex
{


UIColor *returnColor;
NSArray *colorsArray=@[[UIColor whiteColor],[UIColor redColor],[UIColor greenColor]];
NSArray *reverseColorsArray=@[[UIColor greenColor],[UIColor redColor],[UIColor whiteColor]];

if(currentSet%2==0){

    returnColor =[colorsArray objectAtIndex:counter3];

}else{

    returnColor =[reverseColorsArray objectAtIndex:counter3];

}
counter3++;
if(counter3==3){

    currentSet++;
    counter3=0;
}

return returnColor;

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33139662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档