如何在tableview(iPhone)的特定部分清除(分隔符颜色)?

时间:2012-06-29 05:51:23

标签: iphone ios uitableview

目前我在iPhone应用程序中工作,使用tableview开发表格及其样式,如分组,Noofof section like 2,然后第1部分有分色,如浅灰色,第2部分有分色,如clearColor。 但是当我滚动表格视图时,有时第2部分活动时第1部分也会清除分隔符颜色,如何解决这个问题?请任何人帮助我

先谢谢

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

       if (indexPath.section == 0 && indexPath.row == 0) 
        {
            studentUpdateTable.separatorColor = [UIColor lightGrayColor];
            cell.backgroundColor = [UIColor whiteColor];
        }
       else if(indexPath.section == 1 && indexPath.row == 0)
       {
            studentUpdateTable.separatorColor = [UIColor clearColor];
            cell.backgroundColor = [UIColor clearColor];
       }
}

4 个答案:

答案 0 :(得分:3)

 tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

你可以设置为None而不是尝试将其设置为clearColor

答案 1 :(得分:2)

这确实有效

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

添加了自定义UIView(新分配的UIView)作为单元格的背景视图。

答案 2 :(得分:0)

可以从“界面”构建器本身完成..在表视图的ATTRIBUTES INSPECTOR中,您可以选择分隔符样式...无需任何编码......

答案 3 :(得分:0)

看起来你的问题是你每次滚动时都在分配单元格,因为tableView重用了单元格,不需要每次都分配它。如果单元格为零,则只分配它。

-(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];
      cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

   if (indexPath.section == 0) 
   {
        studentUpdateTable.separatorColor = [UIColor lightGrayColor];
        cell.backgroundColor = [UIColor whiteColor];
   }
   else if(indexPath.section == 1)
   {
        studentUpdateTable.separatorColor = [UIColor clearColor];
        cell.backgroundColor = [UIColor clearColor];
   }
}