1/2 высоты экрана , делать такое вычеслиение для констрейнта view.frame.height * 0.2 не костыль?
Пример:
pageControl.snp.makeConstraints {
$0.top.equalTo(view.safeAreaLayoutGuide).offset(view.frame.height * 0.1)
$0.centerX.equalTo(view.safeAreaLayoutGuide)
$0.height.equalTo(20)
}
В твоём случае view.frame.height может просто оказаться нулём, плюс в случае если он изменится, тебе нужно будет вручную это отследить и так же изменить. Фрейм валидный в layoutSubviews, собственно ты можешь свой код перенести туда, но это для такой задачи не лучшая затея. Правильнее будет использовать такой подход:
Понял, спасибо большое!
А если нужно будет делать такой отступ не только от safeArea но и от других кастомных view?
Сама затея делать подобные отступы кажется не очень хорошая идея. В той же iOS дефолтные отступы слева и справа у рутовой вьюхи контроллера 16 на маленьких устройствах и 20 на больших. Ну если тебе это нужно и таких мест много, то наверное более компактнее будет сделать констреинты с нулевым отступом, а в методе layoutSubviews добавлять отступы в виде константы у этих констреинтов.
Обсуждают сегодня