DevPrep

Все темы › SwiftUI

Как написать свой контейнер через протокол Layout?

Senior PRO

Суть

Протокол Layout (iOS 16) открывает тот же механизм, на котором построены HStack и VStack. Контейнер реализует два метода: sizeThatFits(proposal:subviews:cache:) — какой размер я займу при данном предложении, и placeSubviews(in:proposal:subviews:cache:) — куда поставить каждого ребёнка. Дети доступны как прокси LayoutSubview: у них можно спросить размер для любого предложения и вызвать place(at:anchor:proposal:). Видеть их body или тип контейнер не может — только размеры и layout-значения.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

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

Скачать DevPrep в App Store