В iOS 11 был представлен API вместе с изменением поведения представления Центра уведомлений (и Центра управления), чтобы можно было указать желаемое поведение.
UIViewController.preferredScreenEdgesDeferringSystemGestures
В iOS 11+ Центр уведомлений всегда будет опускаться при перемещении с самой верхней части экрана, даже если строка состояния скрыта. preferredScreenEdgesDeferringSystemGestures
позволяет указать, что смахивание края экрана не должно вызывать стандартный системный интерфейс пользователя, а вместо этого будет предоставлена выдвижная вкладка, которую пользователь должен снова провести, чтобы открыть системный интерфейс.
Это предназначено для использования в играх, где пользователи часто проводят пальцами, когда нежелательно вводить системный интерфейс вместо управления игрой. Для такого иммерсивного приложения вы можете вернуть .all
, чтобы указать, что вы не хотите, чтобы какой-либо системный пользовательский интерфейс появлялся в первый раз, когда вы проводите по краям экрана, и вместо этого ему следует отдавать предпочтение собственным жестам вашего приложения.
Обратите внимание, что это отключит возможность однократного пролистывания снизу, чтобы закрыть приложение на iPhone и iPad, на котором нет кнопок «Домой» - пользователю придется дважды провести пальцем, чтобы закрыть приложение.
По-прежнему нет способа полностью отключить Центр уведомлений из вашего приложения или предотвратить отображение уведомлений, пока ваше приложение находится на переднем плане.