如何为单行设置两种背景颜色

时间:2016-07-14 11:16:08

标签: ios objective-c uitableview

我想在此图片中为单行设置两种背景颜色。enter image description here

以下是我的代码,用于数组,下面是tableView委托方法。

 -(viewDidLoad)

 if([managedObject valueForKey:@"personality_company_master_values"] != nil)
{
    [_displayValues addObject:[NSString stringWithFormat:@"Personality    %@",[managedObject valueForKey:@"personality_company_master_values"]]];
}
 if([managedObject valueForKey:@"video_tag"] != nil)
{
    [_displayValues addObject:[NSString stringWithFormat:@"Tag                 %@",[managedObject valueForKey:@"video_tag"]]];
}

 if([managedObject valueForKey:@"industry_master_values"] != nil)
{
    [_displayValues addObject:[NSString stringWithFormat:@"Industry       %@",[managedObject valueForKey:@"industry_master_values"]]];
}
 }

这是tableView委托方法

   - (NSArray *)myTableViewCells
 {
if (!_myTableViewCells)
 {
    _myTableViewCells = @[
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],
                          [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil],

                          ];
 }

 return _myTableViewCells;
 }


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {


return self->_displayValues.count;
 }

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
UITableViewCell* cell = self.myTableViewCells[indexPath.row];

     NSManagedObject *managedObject = [self.devices lastObject];

      UILabel *lbl=(UILabel*)[cell viewWithTag:900];

      [lbl setText:[managedObject valueForKey:@"personality_company_master_values"]];

      lbl.textColor=[UIColor blackColor];

      [cell.contentView addSubview:lbl];

return cell;
   }

4 个答案:

答案 0 :(得分:2)

设置标签的背景颜色或尝试在表格单元格内容视图中添加两个视图

没有足够的回购作为评论发布

答案 1 :(得分:1)

添加子视图,使用布局约束来调整子视图的大小,将背景颜色应用于每个视图。

您可以使用单元格中的标签来执行此操作而无需使用其他视图,您只需要适当地设置约束。它实际上看起来可能是单元格上的背景颜色和仅一个标签上的背景颜色......

答案 2 :(得分:0)

你应该在UITableViewCell的子视图中取两个标签,并为它们提供两种不同的颜色。

将其写入cellForRowAtIndexPath方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    for(UIView *eachView in [cell subviews])
        [eachView removeFromSuperview];

    //Initialize Label
    UILabel *lbl1 = [[UILabel alloc]initWithFrame:YOURFRAME];
    [lbl1 setFont:[UIFont fontWithName:@"FontName" size:12.0]];
    [lbl1 setTextColor:[UIColor grayColor]];
    lbl1.text = YOUR CELL TEXT;
    [cell addSubview:lbl1];
    [lbl1 release];

    UILabel *lbl2 = [[UILabel alloc]initWithFrame:YOURFRAME];
    [lbl2 setFont:[UIFont fontWithName:@"FontName" size:12.0]];
    [lbl2 setTextColor:[UIColor blackColor]];
    lbl2.text = YOUR CELL TEXT;
    [cel2 addSubview:lbl2];
    [lbl2 release];

    return cell;
}

如果您不熟悉UITableViewCell的自定义意味着如果您不知道如何在UITableViewCell的子视图中添加两个不同的标签,那么Follow this tutorial to customise your tableviewcell

快乐的编码!

答案 3 :(得分:0)

plz在uitableview单元格中取两个标签,你可以访问它们

 UILabel *label =(UILabel *)[cell viewWithTag:yourtagnumber];

enter image description here 设置此标识符值,并将样式设置为自定义

in in

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
      {
    UITableViewCell*  cell = [tableView dequeueReusableCellWithIdentifier:@"youridentifier"];

         NSManagedObject *managedObject = [self.devices lastObject];

          UILabel *lbl=(UILabel*)[cell viewWithTag:900];

          [lbl setText:[managedObject valueForKey:@"personality_company_master_values"]];

          lbl.textColor=[UIColor blackColor];



    return cell;
       }