Вам не нужно явно устанавливать .contentSize
для начала - вы можете позволить авторазметке все это обработать за вас.
Сначала удалите ограничение Content View.width = width
:
При наличии этого ограничения автоматическому макету указывается, чтобы сделать contentView
только шириной, равной , в режиме прокрутки, чтобы вы не получили никакой горизонтальной прокрутки. Явно установив .contentSize
, вы получили некоторую прокрутку, но, как вы обнаружили, она не дала вам того, что вы хотели.
После удаления этого ограничения добавьте 20-pt конечное ограничение из Red View
к конечному краю представления содержимого:
Теперь у вас есть полная цепочка горизонтальных ограничений ...
- Blue View.leading = leading + 20
- Blue View Width
- Red View.leading = Blue View.trailing + 40
- Red View Width
- trailing = Red View.trailing + 20
Это удовлетворяет автоматическому расположению и правильно определяет ширину Content View
... и, поскольку Content View
ограничен в начале и в конце вашего прокрутки, вы получаете правильную горизонтальную прокрутку.
Код не нужен.