Я заметил, что некоторые приложения, такие как Safari и Mail, показывают индикатор загрузки в строке состояния (полоса в самом верху телефона), когда они получают доступ к сети. Есть ли способ сделать то же самое в приложениях SDK, или это только Apple?
ios
cocoa-touch
rustyshelf
источник
источник
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// как один лайнерUIApplication.sharedApplication().networkActivityIndicatorVisible = true
Я нашел следующие макросы очень полезными!
Таким образом, вы можете просто позвонить
ShowNetworkActivityIndicator();
илиHideNetworkActivityIndicator();
из своего приложения (если, конечно, есть заголовок!).источник
Я написал синглтон, который решает проблему нескольких подключений, сохраняя счетчик того, что происходит (чтобы избежать удаления статуса, когда соединение возвращается, но другое все еще активно):
Заголовочный файл:
и реализация:
Пример:
источник
Однострочный код для этого:
источник
Вам нужно позаботиться о том, чтобы скрыть индикатор активности также после выполнения сетевого вызова.
Если пользуетесь
AFNetworking
, то много делать не нужно.Сделайте следующие изменения в
AppDelegate
классе:Импортировать
AFNetworking/AFNetworkActivityIndicatorManager.h
Поместите это в
didFinishLaunchingWithOptions:
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]
источник
Индикатор сетевой активности в строке состояния устарел в iOS 13 .
Использование
UIApplication.shared.isNetworkActivityIndicatorVisible = true
больше не будет работать.В сообщении об устаревании говорится:
источник
Также может быть полезно убедиться, что вы запускаете его в основном потоке, поскольку он связан с пользовательским интерфейсом.
источник
Как многие уже говорили, у iPhone X нет индикатора сетевой активности и, вероятно, у других новых iPhone с выемкой.
Я наткнулся на эту невероятную библиотеку, написанную Ортвином Генцем, FutureTap: https://github.com/futuretap/FTLinearActivityIndicator
Он возвращает индикатор туда, где он был при первоначальном выпуске iPhone X. Многие помнят индикатор типа Knight Rider.
Эта библиотека доступна для Swift 4.2, поэтому вам нужно будет изменить настройки языка Swift, как описано здесь: Тип «NSAttributedStringKey» (он же «NSString») не имеет элемента «font»
источник