Как вставить более одной строки данных в одну ячейку UITableView? - PullRequest
0 голосов
/ 25 мая 2011

Могу ли я узнать, как мы можем вставить более одной строки данных в одну ячейку UITableView, просто я хочу, чтобы вывод в одной ячейке был таким:

КПК

Разработчик

Инфосистемы

ИНДИЯ

Ответы [ 7 ]

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

Используйте \ n , как вы используете в своей строке.

Установите numberOfLines на 4, чтобы разрешить любое количество строк.

label.numberOfLines = 4;

Обновите рамку метки, чтобы она соответствовала размеру текста, используя sizeWithFont: . Если вы этого не сделаете, ваш текст будет отцентрирован по вертикали или обрезан.

UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
                      constrainedToSize:label.frame.size
                          lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
label.origin.x, label.orgin.y, 
label.size.width, labelSize.height);
label.text=[NSString stringWithFormat:@"KPK\nDeveloper\nInfosystems\nIndia"];  

Теперь вам просто нужно добавить метку в ячейку.

[cell addSubView:label];
1 голос
/ 25 мая 2011
            UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 80)];
            myLabel.text = @"KPK";
            myLabel.textAlignment = UITextAlignmentCenter;
            myLabel.textColor = [UIColor yellowColor];
           [cell addSubview:myLabel];

           UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 201, 200, 80)];
            myLabel1.text = @"Developer";
            myLabel1.textAlignment = UITextAlignmentCenter;
            myLabel1.textColor = [UIColor yellowColor];
            [cell addSubview:myLabel1];
0 голосов
/ 25 мая 2011

Я думаю, что лучший способ - создать пользовательскую реализацию UITableViewCell или программно добавить UILabel s в contentView ячейки.

т.е:.

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 200, 30)];
label.text = @"MyText";
label.textColor = [UIColor blackColor];
[cell.contentView addSubview:label];
[label release]; // Never forget this!

При добавлении дополнительных строк вы должны обновить определение первой строки, чтобы корректно сместить новые строки. Например. второй ярлык должен выглядеть примерно так:

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(5, 35, 200, 30)];

Когда вы закончите, вы должны реализовать метод tableView:heightForRowAtIndexPath: в делегате таблицы, потому что вы должны определить правильную высоту для новой ячейки. В вашем примере для 4 меток вы должны реализовать что-то вроде этого:

- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath)indexPath {
    if (is_one_of_my_modified_cells) {
        return 35*4 + 5;
    }

    return 44; // default height
}

Попробуй и дай мне знать.

0 голосов
/ 25 мая 2011

Используйте uilabel и добавьте его в качестве подпредставления, если ваша ячейка tableview. Вы можете указать количество строк в uilabel

   label.numberOfLines = 4;
0 голосов
/ 25 мая 2011

Создайте пользовательскую ячейку, добавьте в нее 4 метки, чтобы отобразить всю необходимую информацию. Изучите следующий учебник, чтобы узнать, как вы можете создать собственную ячейку.

http://adeem.me/blog/2009/05/30/iphone-sdk-tutorial-part-6-creating-custom-uitableviewcell-using-interface-builder-uitableview/

0 голосов
/ 25 мая 2011

установить высоту столешницы и использовать метку в табличном представлении

0 голосов
/ 25 мая 2011

вы можете поместить \ n в текст. Не уверен, что если это работает, вы можете создать пользовательскую ячейку для многострочных записей.

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