Установка пользовательской высоты UITableViewCells

Я бы просто использовал POST для этой операции. Не думайте о том, какие глаголы соответствуют каким видам операций в смысле RESTful. Традиционно POST должны создавать объект - но в этой ситуации применяется Razor от Occam - как правило, самое простое решение - правильное.

Если вы хотите использовать GET, выполните рефакторинг вашего запроса, чтобы поместить параметры в URI. Тело полезной нагрузки в запросе GET не является стандартным.

Кроме того, просим ознакомиться с этой статьей SO: Как разработать RESTful-поиск / фильтрацию?

Этот вопрос в значительной степени является религиозным / основанным на мнении обсуждением. Ссылка SO, указанная выше, обозначает сам поиск как ресурс, а также правильно указывает, что простое использование только POST не обязательно требует, чтобы что-то было создано в базе данных где-либо.

221
задан Tamás Sengel 12 March 2018 в 07:08
поделиться

2 ответа

Ваш UITableViewDelegate должен реализовать tableView:heightForRowAtIndexPath:

Objective C

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [indexPath row] * 20;
}

Swift 5

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return indexPath.row * 20
}

, который Вы, вероятно, захотите использовать NSString sizeWithFont:constrainedToSize:lineBreakMode: метод для вычисления высоты строки вместо того, чтобы просто выполнить некоторую глупую математику на indexPath :)

498
ответ дан Sergio 23 November 2019 в 04:02
поделиться

в пользовательском UiableViewCell -Controller Добавьте это

-(void)layoutSubviews {  

    CGRect newCellSubViewsFrame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    CGRect newCellViewFrame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height);

    self.contentView.frame = self.contentView.bounds = self.backgroundView.frame = self.accessoryView.frame = newCellSubViewsFrame;
    self.frame = newCellViewFrame;

    [super layoutSubviews];
}

в UiableView -controller добавьте это

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [indexPath row] * 1.5; // your dynamic height...
}
25
ответ дан 23 November 2019 в 04:02
поделиться