динамически увеличивать высоту строки -iphone - PullRequest
1 голос
/ 02 марта 2012

У меня есть вид таблицы.Я хочу динамически увеличивать высоту строки до некоторого размера.Как я могу это сделать.Я знаю, это глупый вопрос. Но все еще не могу найти решение. Помогите мне, пожалуйста.Я использовал этот код. Но он не работает:

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier] autorelease];

 UILabel *lblOutTime = [[UILabel alloc]init];
lblOutTime = [[UILabel alloc] initWithFrame:CGRectMake(2, 20, 200, 40)];

lblOutTime.text =@"Outtime : ";

lblOutTime.backgroundColor = [UIColor clearColor];
lblOutTime.font = [UIFont boldSystemFontOfSize:5.0f];
lblOutTime.font = [UIFont fontWithName:@"HelveticaNeue Heavy" size:5.0f];

 [cell.contentView insertSubview:lblOutTime atIndex:1];
  return cell;

}

Ответы [ 5 ]

1 голос
/ 17 октября 2012
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row <[ListOfCartItems count])
    {
        CGFloat     result = 44.0f;
        NSString*   text = nil;
        CGFloat     width =220 ;

        clsCart *tempCartPro;
        tempCartPro=[ListOfCartItems objectAtIndex:indexPath.row];

        text=tempCartPro.clsProductItem.productName;

        if (text)
        {

            CGSize      textSize = { width, 20000.0f };     // width and height of text area
            CGSize      size = [text sizeWithFont:[UIFont boldSystemFontOfSize:15] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];

            size.height += 90.0f;           // top and bottom margin
            result = MAX(size.height, result)  ;    // at least one row
        }

        return result;

    }
    else
    {
        return 230.0;
    }
}
1 голос
/ 27 апреля 2012

-

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row == myIndexPath)
        {
            return someHeight;
        }
        return  normalHeight;
    } 
In this case the height is not dynamic. here

- это только 2 фиксированных положения высоты ячейки. как показывают условия if.

1 голос
/ 02 марта 2012

Здесь вы можете изменить размер ячейки:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

if (indexPath.myRow == myCellIndex)
return NEW_HEIGHT;
else return NORMAL_HEIGHT;

}

И вы можете перезагрузить свой стол, когда захотите:

[myTable reloadData];
0 голосов
/ 02 марта 2012

добавьте этот метод делегата tableview в ваш файл class.m.Убедитесь, что ваш класс соответствует UITtableViewDelegate протоколу

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row == myIndexPath)
        {
            return someHeight;
        }
        return  normalHeight;
    }
0 голосов
/ 02 марта 2012

Если вы хотите увеличить высоту всей строки, используйте

[tableView setRowHeight:44];

[tableView reloadData];

, если вы хотите увеличить высоту конкретной строки, используйте UITableView Delegete heightForRowAtIndexPath:

и используйте эту

[tableView reloadData];
...