UICell textlabel изменить размер кадра - PullRequest
0 голосов
/ 15 октября 2010

У меня есть таблица, которая отображает ячейку, используя UITableViewCellStyleSubtitle:

=============================================================
Title:This is the title of something        Date:Custom label
Subtitle:breif description
=============================================================

Моя проблема в том, что иногда заголовки длиннее ячейки и охватывают дату. Так есть ли способ, которым я могу уменьшить cell.textlabel, чтобы он не позволял ему покрыть дату.

Вот мой код для ячейки

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier  = @"Cell";



UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[[UITableViewCell alloc] 
             initWithStyle:UITableViewCellStyleSubtitle
             reuseIdentifier:CellIdentifier] 
            autorelease];

    CGRect frame;

    if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        frame.origin.x = 370;
    else
        frame.origin.x = 220;

    frame.origin.y = 15;
    frame.size.height = 15;
    frame.size.width = 80;

    UILabel *dateLabel = [[UILabel alloc] initWithFrame:frame];
    dateLabel.tag = 1;
    [cell.contentView addSubview:dateLabel];
    [dateLabel release];
}


    Document *d = [documentList objectAtIndex:indexPath.row];

    UILabel *dateLabel = (UILabel *) [cell.contentView viewWithTag:1];
    dateLabel.text = [d date];
    dateLabel.textColor = [UIColor blackColor];
    [dateLabel setFont:[UIFont fontWithName:@"Arial" size:12]];

    cell.textLabel.textColor = [UIColor blackColor];
    [cell.textLabel setFont:[UIFont boldSystemFontOfSize:13]];
    cell.textLabel.text = [d title];

    cell.detailTextLabel.textColor = [UIColor blackColor];
    [cell.detailTextLabel setFont:[UIFont fontWithName:@"Arial" size: 10]];
    cell.detailTextLabel.text = [d inst];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


return cell;

}

1 Ответ

1 голос
/ 15 октября 2010

Создайте свой собственный подкласс UITableViewCell и расположите ярлыки вручную.В настоящее время вы используете встроенный тип ячейки (UITableViewCellStyleSubtitle) и затем добавляете в него свое подпредставление даты, что исключает метку заголовка из вашей области.

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