UILabel в текстовой проблеме viewForFooterInSection

Я хочу отобразить два блока текста в двух разных нижних колонтитулах моей таблицы.

Текст для раздела 3 используется titleForFooterInSection :

- (NSString *)tableView:(UITableView *)tv titleForFooterInSection:(NSInteger)section
{
    if (section == 3)
        return @"SOME TEXT FOR SECTION 3";
    else
        return @"";
}

, он отлично работает и оформлен правильно. Я также хочу добавить текст более сложного форматирования (на самом деле только с выравниванием по левому краю), поэтому я создаю метку и добавляю ее в viewForFooterInSection , который работает, но не дополняется (не начинается с x = 20 & y = 20, начинается вплотную к краю главного окна) и оформлен не так, как другой текст.

- (UIView *)tableView:(UITableView *)tv viewForFooterInSection:(NSInteger)section
{
    if (section == 1) 
    {
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 50)] autorelease];
        label.text = @"SOME COMPLICATED TEXT FOR SECTION 1\r\n"
        "\r\n"
        "MORE TEXT HERE\r\n"
        "AND HERE.\r\n"

        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont systemFontOfSize:14];
        label.shadowColor = [UIColor colorWithWhite:0.8 alpha:0.8];
        label.textColor = [UIColor blueColor];

        label.lineBreakMode = UILineBreakModeWordWrap;
        label.textAlignment = UITextAlignmentLeft;
        label.numberOfLines = 0;

       [label sizeToFit];

    return label;       
    }

    else
        return nil;

}

-(CGFloat)tableView:(UITableView *)tv heightForFooterInSection:(NSInteger)section
{
    if (section == 1) 
        return 180.0f;
    else if (section == 3)
        return 50.0f;
    else 
        return 0.0f;
}
6
задан daidai 18 April 2011 в 02:21
поделиться