如何设置Tableview单元格alpha值

时间:2014-09-29 06:16:18

标签: ios uitableview

我有UITableView。我在Tableview中有4个单元格。

我的Tableview alpha值为0.8。

但我的要求是我要先3个单元格将是alpha值0.8,第4个单元格将是1.0 alpha值。

那么如何根据细胞设置这些alpha值?

请帮帮我。我过去2天面临这个问题。

这是我的代码:

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      UITableViewCell *cell = nil;
      NSString *simpleTableIdentifier = [NSString stringWithFormat:@"%@%d",@"Cell",indexPath.row];
      if (indexPath.row == 0)
      {
         cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
         if (cell == nil)
         {
             cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
             cell.alpha = 0.8;
         }
      }
      else if (indexPath.row == 1)
      {
            cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
            if (cell == nil)
            {
               cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
               cell.alpha = 0.8;
            }
      }
      else if(indexPath.row == 2)
      {
              cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
              if (cell == nil)
              {
                 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
                 cell.alpha = 0.8;
              }
       }
       else if (indexPath.row == 3)
       {
              cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
               if (cell == nil)
              {
                   cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
                   cell.alpha = 1.0;
              }
       }
        return cell;
     }

5 个答案:

答案 0 :(得分:1)

我希望这一行代码解决您的问题

cell.contentView.alpha = 0.8

答案 1 :(得分:0)

如何使用alpha值设置单元格背景颜色? cell.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.8];

答案 2 :(得分:0)

clearColor的灰度和alpha = 0,所以无论你设置什么alpha,它都不会工作,你必须有一个实际的颜色,所以alpha具有可见的效果

答案 3 :(得分:0)

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = nil;
        NSString *simpleTableIdentifier = [NSString stringWithFormat:@"Cell"];

        cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
  UIView *lView_ = [[UIView alloc] init];
     lView_ = [[UIView alloc] init];
        lView_.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:0.6];
        cell.backgroundView = lView_;

        }


   UIView *backview = (UIView *)cell.backgroundView;

        if (indexPath.row == 3)
        {

       backview.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1];

        }
        else
        {
             backview.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:0.2];
        }
        return cell;
    }

使用上述内容并检查它是否正常工作。我希望这可以解决您的问题。

答案 4 :(得分:0)

您应该更改此委托方法中的单元格

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.alpha = indexPath.row < 3 ? 0.8 : 1.0;
}