iPhone UIGroupTableView - Как скрыть границу ячейки, но сохранить границу раздела округленной - PullRequest
1 голос
/ 30 мая 2011

Когда я устанавливаю

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];

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Попробуйте использовать separatorStyle свойство UITableView.

@property(nonatomic) UITableViewCellSeparatorStyle separatorStyle

Возможный тип будет

 UITableViewCellSeparatorStyleNone,
   UITableViewCellSeparatorStyleSingleLine,
   UITableViewCellSeparatorStyleSingleLineEtched
0 голосов
/ 30 мая 2011

Поскольку у меня была только одна ячейка, нарисуйте переменное число ячеек как 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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...