tableviewcell, использующий ограничение обновления AutoLayout программно

У меня есть пользовательская таблица с использованием Autolayout, дизайн в файле xib.

дизайн:

введите здесь описание изображения

CustomTableViewCell.h: @property (weak, nonatomic) IBOutlet UIView *customView; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintRatio;

он отлично работает в табличном представлении.

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

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ CustomTableViewCell *customCell = [self.mainTableView dequeueReusableCellWithIdentifier:@"customCell"]; customCell.constraintRatio.constant = 2; [customCell setNeedsUpdateConstraints]; [customCell setNeedsLayout]; [customCell layoutIfNeeded]; return customCell; }

но после этого отношение ячеек остается равным 1. что я сделал не так или что я пропустил? спасибо за любое предложение.


person superwave    schedule 18.07.2016    source источник


Ответы (1)


проблема решена.

Я неправильно использую customCell.constraintRatio.constant. который должен быть множителем.

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

после этого все работает нормально.

ссылка: автоматический макет программно изменяет множитель constriaint

person superwave    schedule 19.07.2016