DyadyaEmil
@DyadyaEmil
Начинающий программист

Как "читать"/"понимать" документацию SwiftUI?

Здравствуйте все, читая документацию по тому же C#, всё предельно просто и понятно. Это отвечает за то, это отвечает за то. Но я просто не могу понять, как воспринимать документацию Apple? Вот к примеру, изучаю я сейчас SwiftUI, пытаюсь сделать тесто-обучающий проект. Встал вопрос, как расположить определенный View, с самого низу. Понятно, что можно сделать это "программным путём"
BottomMenu()
                .offset(CGSize(width: 0, height: screenHeight / 2 - 40))

И получить:
60aaa5f1cea4d243631986.png
Но думаю это не совсем правильный подход, если в том же UIKit, можно просто раскидать констрейнты, то тут с этим возникли проблемы.
Нашёл я anchorPreference, открываю документацию и вижу эт60aaa693408b7122414242.pngо:
60aaa69a73ddf571567518.png
60aaa6a02b1cf083720758.png
Я прекрасно понимаю, что это ни Apple тупые, пишут что попало, а я не могу понять.
Но как это читать, как понять что для чего?
Прошу всех прочитавших, будьте снисходительны к моей тупости, и объясните пожалуйста.
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
briahas
@briahas
ObjC, Swift, Python
Ну, не скажу как часто (но достаточно чтобы заметить) в Appl-овской документации встречаются такие пустые статьи, где без stackowerflow не разобраться. Так что, не наговаривайте на себя.

Чтобы заставить anchorPreference работать надо реализовать кастомный класс (структуру) который удовлетворяет протоколу PreferenceKey. (...some View where K : PreferenceKey).
  • Тип этого кастомного класса (MyCustomKey.self) будет передан в key.
  • В value передаете значение типа Anchor.Source (кликните по Source и увидите варианты)
  • В transform идет кложура которая возвращает объект типа PreferenceKey.Value (вы же реализовали уже протокол PreferenceKey?), по ходу, это будет еще один ваш кастомный класс. В действительности просто инититие экземпляр этого типа в кложуре и она его и возвращает, типа:
    .anchorPreference(..., transform: { MyPreferenceKeyValue(myVariableToStoreAnchor: $0) })


(все названия классов и переменных взяты отбалды и не претендуют на значимость)

То что у вас на второй картинке, это то что идет после слов "See Also"... туда надо смотреть (ИМХО) ну очень редко... Обычно достаточно того что написано над этой фразой.

Как я и говорил - "без stackowerflow не разобраться".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RomanKerimov
VStack {
    Spacer()
    BottomMenu()
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы