Как заморозить интерфейс при запуске? - PullRequest
2 голосов
/ 25 декабря 2011

Когда приложение запускается, я хочу на секунду заморозить пользовательский интерфейс, чтобы инициализировать службу предварительных условий (например, службу определения местоположения).Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 25 декабря 2011

Просто поместите прозрачный UIView поверх всего экрана и сделайте так, чтобы он перехватывал все сенсорные события.

Чтобы перехватить события касания, просто создайте подкласс UIView и переопределите

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;

Обычно внутри этого метода вы вызываете super, но в этом случае вы просто возвращаете YES:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    return YES;
}

Если вы хотите быть по-настоящему модным, вы можете добавить синтезированное свойство к подклассу UIView с именем shouldInterceptTouches и сделать что-то вроде этого:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
 {
     return shouldInterceptTouches ? YES : [super pointInside:point withEvent:event];
 }

Также не забудьте убедиться, что ваш прозрачный вид выше других видов.

Примечание: руководству Apple по человеческому интерфейсу не нравится, когда вы делаете подобные вещи. Пользователь будет сбит с толку и разочарован, если ваше приложение не отвечает, и это может привести к его выходу из приложения, если они думают, что оно заморожено. Вам лучше отображать какой-то вид UIActivityIndicatorView и отключать только абсолютно необходимые кнопки. Apple нравится, когда вы делаете такие вещи в фоновом режиме и позволяете пользователю делать другие вещи, на случай, если это займет некоторое время или не удастся.

0 голосов
/ 25 декабря 2011

Вы можете использовать Модальное Представление или отключить все компоненты, пока служба определения местоположения не будет завершена.

За это отвечает приложение, а не ОС или платформы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...