2011-05-30 77 views
1

當我設置iPhone UIGroupTableView - 如何隱藏單元格邊框,但保留部分圓角邊框

tableView.separatorColor = [UIColor clearColor] 

其皮的部分邊界了。 任何想法,我怎樣才能隱藏所有細胞分離器的邊界,但整個部分的圓形邊框應該在那裏。

我已經嘗試過這種方式,它可以以某種方式工作,但不刷新,即使我打電話給[cell setNeedsDisplay]。如果我滾動,然後重新繪製內容。

UIView *bgView = [[UIView alloc] initWithFrame: CGRectMake(cell.frame.origin.x +10, -1, 
                    cell.frame.size.width - 20, 
                    cell.frame.size.height + 1)]; 
     bgView.backgroundColor = [UIColor whiteColor]; 
     [cell addSubview: bgView]; 
     [cell sendSubviewToBack:bgView]; 
     cell.clipsToBounds = NO; 
     [bgView release]; 
     [cell setNeedsDisplay]; 

回答

0

因爲我只有一個單元,繪製一個細胞我的變量數小區的UILabel的。現在解決問題!

// Create a cell with dynamic number of elements looking like UITableViewCellStyleValue2 
- (UITableViewCell *) createDynamicCell { 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell; 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:CellIdentifier]; 
    cell.clipsToBounds = NO; 

    // change frame of one or more labels 
    CGRect cellFrame = self.tableView.frame; 
    CGFloat startY = 5.0, startX = 10.0, extra1 = 20.0, gap = 10.0, startX2 = 0.0; 

    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX + 5, startY, 300 - startX * 2, 44)]; 
    if (costBreakupStyle == CostBreakupDepartment) { 
     headerLabel.text = NSLocalizedString(@"Cost per department:", @""); 
    } else { 
     headerLabel.text = NSLocalizedString(@"Amount spent per airline:", @""); 
    } 
    headerLabel.font = [UIFont boldSystemFontOfSize:17]; 
    [cell addSubview:headerLabel]; 
    [headerLabel release]; 

    startY = startY + 44 + 10; 
    float mid = (cellFrame.size.width - startX * 2)/2; 
    startX2 = startX + extra1 + mid + gap; 

    for (int i = 0; i < [dataSource count]; i++) { 
     startY += 5; // cell gap 
     NSString *text = [dataSource objectAtIndex:i]; 
     UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY, 
                     mid + extra1, kThinnerRowHeight)]; 
     textLabel.text = [NSString stringWithFormat:@"%@:", text]; 

     float cost = [(NSNumber *) [costArray objectAtIndex:i] floatValue]; 
     NSString *detailText = [NSString stringWithFormat:@"%@ %.2f", 
           [[Settings getInstance] getCurrencyCode], cost]; 
     UILabel *detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY, 
                      mid - extra1 - gap, kThinnerRowHeight)];  
     detailTextLabel.text = detailText; 

     textLabel.font = [UIFont systemFontOfSize:15.0]; 
     textLabel.textAlignment = UITextAlignmentRight; 
     detailTextLabel.font = [UIFont systemFontOfSize:15.0]; 
     detailTextLabel.textAlignment = UITextAlignmentLeft; 
     detailTextLabel.textColor = [UIColor blueColor]; 

     [cell addSubview:textLabel]; 
     [cell addSubview:detailTextLabel]; 
     [textLabel release]; 
     [detailTextLabel release]; 

     startY += kThinnerRowHeight; 
    } 

    // Total amount label 
    startY += 15; // add a gap 
    NSString *text = NSLocalizedString(@"Total amount spent:", @""); 
    UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY, 
                    mid + 20, kThinnerRowHeight)];  
    textLabel.text = text; 

    UILabel *detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY, 
                     mid - extra1 - gap, kThinnerRowHeight)]; 
    detailTextLabel.text = [NSString stringWithFormat:@"%@ %.2f", 
          [[Settings getInstance] getCurrencyCode], 
          [[RequestResources getInstance] totalCredit]]; 
    textLabel.font = [UIFont systemFontOfSize:15.0]; 
    textLabel.textAlignment = UITextAlignmentRight; 
    detailTextLabel.font = [UIFont systemFontOfSize:15.0]; 
    detailTextLabel.textAlignment = UITextAlignmentLeft; 
    detailTextLabel.textColor = [UIColor blueColor]; 
    [cell addSubview:textLabel]; 
    [cell addSubview:detailTextLabel]; 
    [textLabel release]; 
    [detailTextLabel release]; 

    // Credit remaining label 
    startY += kThinnerRowHeight;  
    text = NSLocalizedString(@"Total credit remaining:", @""); 
    textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY, 
                  mid + 20, kThinnerRowHeight)];   
    textLabel.text = text; 

    detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY, 
                   mid - extra1 - gap, kThinnerRowHeight)]; 
    detailTextLabel.text = [NSString stringWithFormat:@"%@ %.2f", 
          [[Settings getInstance] getCurrencyCode], 
          [[RequestResources getInstance] remainingCredit]]; 
    textLabel.font = [UIFont systemFontOfSize:15.0]; 
    textLabel.textAlignment = UITextAlignmentRight; 
    detailTextLabel.font = [UIFont systemFontOfSize:15.0]; 
    detailTextLabel.textAlignment = UITextAlignmentLeft; 
    detailTextLabel.textColor = [UIColor blueColor]; 
    [cell addSubview:textLabel]; 
    [cell addSubview:detailTextLabel]; 
    [textLabel release]; 
    [detailTextLabel release]; 

    cellHeight = startY + kThinnerRowHeight + 10; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    return cell; 

} 
1

嘗試使用的UITableViewseparatorStyle財產。

@property(nonatomic) UITableViewCellSeparatorStyle separatorStyle 

可能的類型將是

UITableViewCellSeparatorStyleNone, 
    UITableViewCellSeparatorStyleSingleLine, 
    UITableViewCellSeparatorStyleSingleLineEtched 
+1

這是行不通的。對於組表,您不能將separatorstStyle更改爲無。你可以設置它,但不會工作。細胞之間會有分隔符。 – karim 2011-05-30 14:02:09