Использовать автомакет Masonry UITableViewCell

Я пытаюсь автоматически изменить размер ячейки таблицы с помощью автомакета. Но кажется, что TableView игнорирует ограничения по высоте.

в UItableviewCell:

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {

        [self.icon mas_makeConstraints:^(MASConstraintMaker *make) {

        make.top.equalTo(self.contentView).with.offset(10);
        make.left.equalTo(self.contentView).with.offset(10);
        make.width.equalTo(@70);
//            make.height.equalTo(@70);
        make.bottom.equalTo(self.contentView.mas_bottom).with.offset(10);
    }];
  }
}

в UITableView

XLTableViewCell * _cell = [[XLTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"1"];



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

    CGSize size = [_cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    NSLog(@"%f",size.height);

    // size.height is 0.0f;
    return size.height + 1;
}

Я пытаюсь создать изображение (70x70) в UITableViewCell. image.top = 10, image.left = 10, image.bottom = 10.


person xx11dragon    schedule 19.08.2015    source источник


Ответы (1)


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

make.height.constant = некоторое значение

и обновить представление Ограничения

используя один из них

  • (пусто) updateConstraintsIfNeeded NS_AVAILABLE_IOS (6_0); // Обновляет ограничения снизу вверх для иерархии представлений с корнем в приемнике. Реализация UIWindow сначала создает механизм компоновки, если это необходимо.
  • (пусто) updateConstraints NS_AVAILABLE_IOS (6_0); // Переопределите это, чтобы настроить ваши специальные ограничения во время прохода обновления ограничений
  • (BOOL) NeedsUpdateConstraints NS_AVAILABLE_IOS (6_0);
  • (void) setNeedsUpdateConstraints NS_AVAILABLE_IOS (6_0);
person Kavita    schedule 19.08.2015
comment
make.height.constant константа не найдена в классе MASConstraint.LOL NICE, make.height.with.offset(70); - person xx11dragon; 19.08.2015
comment
в этом есть момент view.mas_height make.height.constant - person Kavita; 19.08.2015
comment
я использую make.height.with.offset(70); работает. благодарю вас - person xx11dragon; 19.08.2015