Как увеличить высоту ячейки в виде таблицы в iphone? - PullRequest
2 голосов
/ 12 февраля 2010

Я новичок в разработке для iphone. Я анализирую xml-файл и отображаю заголовок, дату, представление и сводку в каждой строке таблицы. Содержимое summar большое, поэтому в ячейке отображаются только первые 3 слова Как я могу увеличить высоту строки по отношению к длине содержимого. Все содержимое должно правильно помещаться внутри ячейки, и должно отображаться полное содержимое. Пожалуйста, помогите мне. Спасибо.

Ответы [ 5 ]

13 голосов
/ 12 февраля 2010

Вы можете сделать это в вашем tableView.delegate / datasource:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
   switch (indexPath.row){
       case 0:
         if(indexPath.section==0)
            return 123.0; // first row is 123pt high
       default:
         return 40.0; // all other rows are 40pt high 
   }
}

Это, однако, замедляет производительность прокрутки. В идеале вы должны установить одинаковую высоту для всех строк, используя tableview.rowHeight.

2 голосов
/ 05 сентября 2014
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *text = @"write your dynamic text here";
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
    CGSize constraintSize = CGSizeMake(320.0f, 999);  // Make changes in width as per your label requirement. 

    CGSize textSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    return  textSize.height;
}
1 голос
/ 21 февраля 2017

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

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

    if (tableView == self.tableViewCampaigns) {

        return 45;
    }else if(tableView == self.tableViewAgenda)
        return 32;
    else
        return 29;
}
0 голосов
/ 21 февраля 2017

Попробуйте использовать этот делегат, который автоматически управляет в соответствии с содержимым ячейки.

 func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
            return 100
        }

        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            return UITableViewAutomaticDimension
        }
0 голосов
/ 12 февраля 2010

Один из способов сделать это - вручную установить размер ячейки. Просто замените ROW_HEIGHT на что-нибудь подходящее.

cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);
...