Практическая задача: разбор кода swift

overlay рисует кнопку поверх ScrollView и может перекрывать последние элементы. safeAreaInset резервирует для кнопки место в безопасной области прокрутки.

Короткий ответ

Что ответить на собеседовании

overlay рисует кнопку поверх ScrollView и может перекрывать последние элементы. safeAreaInset резервирует для кнопки место в безопасной области прокрутки.

Подробный разбор

Ответ с пояснениями

Условие

struct ContentView: View {
    var body: some View {
        ScrollView {
            content
                .padding(20)
        }
        .background(Color(.systemGroupedBackground))
        .overlay(alignment: .bottom) {
            continueButton
        }
    }
}
struct ContentView: View {
    var body: some View {
        ScrollView {
            content
                .padding(20)
        }
        .background(Color(.systemGroupedBackground))
        .safeAreaInset(edge: .bottom) {
            continueButton
        }
    }
}

Ответ

overlay рисует кнопку поверх ScrollView и может перекрывать последние элементы. safeAreaInset резервирует для кнопки место в безопасной области прокрутки.

Первый вариант не уменьшает доступную контенту область на высоту кнопки: padding(20) не обязан компенсировать её реальную высоту. Во втором нижний inset учитывается контейнером, поэтому контент можно прокрутить выше закреплённой кнопки.

Для фиксированного нижнего действия обычно удобнее safeAreaInset. Проверьте spacing, фон панели, клавиатуру и Dynamic Type; высота кнопки может меняться. Два определения ContentView показаны как альтернативы: в одном модуле под одинаковым именем их одновременно оставлять нельзя.

Источник: developer.apple.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее