Ни один : файл не включен в выходную группу проекта и не компилируется в процессе сборки. Примером является текстовый файл, который содержит документацию, такую как файл Readme.
Компиляция : файл компилируется в вывод сборки. Эта установка используется для файлов кода.
Содержание : Позволяет Вам получать файл (в том же каталоге как блок) как поток с помощью Приложения. GetContentStream (URI). Для этого метода для работы этому нужен пользовательский атрибут AssemblyAssociatedContentFile, который любезно добавляет Visual Studio, когда Вы отмечаете файл как "Содержание"
Встроенный ресурс : Встраивает файл в эксклюзивный ресурс манифеста сборки.
Ресурс (только WPF) : Встраивает файл в общее (всеми файлами в блоке с подобной установкой) ресурс манифеста сборки по имени AppName.g.resources.
Страница (только WPF) : Используемый для компиляции xaml
файл в baml
. Эти baml
тогда встраивается с той же техникой как Resource
(т.е. доступный как 'AppName.g.resources)
ApplicationDefinition (только WPF) : Mark файл XAML/class, который определяет Ваше приложение. Вы определяете код - позади с x:Class = "Пространство имен. ClassName" и набор форма/страница запуска с StartupUri = "Window1.xaml"
SplashScreen (только WPF) : изображение, которое отмечено как SplashScreen
, показывают автоматически, когда загрузки приложения WPF, и затем исчезают
DesignData: Компиляции XAML viewmodels так, чтобы usercontrols мог быть предварительно просмотрен с демонстрационными данными в Visual Studio (типы насмешки использования)
DesignDataWithDesignTimeCreatableTypes: Компиляции XAML viewmodels так, чтобы usercontrols мог быть предварительно просмотрен с демонстрационными данными в Visual Studio (использует фактические типы)
EntityDeploy: (Платформа Объекта) : раньше развертывал артефакты Платформы Объекта
CodeAnalysisDictionary: XML-файл, содержащий пользовательский словарь слова для правила написания
Вы можете добавить UIActivityIndicatorView
к любому представлению, которое «загружается»:
CGRect mainBounds = [[UIScreen mainScreen] bounds];
CGRect indicatorBounds = CGRectMake(mainBounds.size.width / 2 - 12,
mainBounds.size.height / 2 - 12, 24, 24);
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]
initWithFrame:indicatorBounds]];
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
[indicator startAnimating];
[yourLoadingView addSubview:indicator];
Думаю, это зависит от того, что загружается? Вы ждете ответа от сервера? В этом случае я обычно помещаю в свое представление вращающееся колесо (UIActivityIndicatorView), в котором установлен флажок «Скрыть, когда не анимировать» (есть сообщение, чтобы установить это также программно). Затем, когда данные получены с сервера, я просто вызываю stopAnimating в представлении UIActivityIndicator, и он скроется. Затем вы можете показать все, что вам нужно.
вы можете добавить UIActivityIndicatorView в качестве подпредставления к представлению, а когда действие закончится, вы можете удалить его из супервизора ...
UIActivityIndicatorView *av = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
av.frame=CGRectMake(145, 160, 25, 25);
av.tag = 1;
[yourView addSubview:av];
[av startAnimating];
удалив его
UIActivityIndicatorView *tmpimg = (UIActivityIndicatorView *)[yourView viewWithTag:1];
[tmpimg removeFromSuperview];
надеюсь, что это поможет ...
Из эстетических соображений обратите внимание, что UIActivityIndicatorView
поставляется с несколькими встроенными стилями, из которых вы можете выбирать. В приведенных выше примерах кода используются параметры «Серый» и «Белый», но в документации Apple описано еще несколько. Вы можете установить стиль, используя:
-initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)
или задав свойство объекта activityViewIndicatorStyle
.
Ага! Я только что наткнулся на самый удобный класс: MBProgressHUD . Попробуйте.
Вам необходимо реализовать новый поток для работы, которая должна выполняться между началом и остановкой анимации.
См. Следующее:
http://discussions.apple.com/thread.jspa?threadID=1531358&start=0&tstart=0
Проблема будет в том, что индикатор активности не будет отображаться, потому что он будет отображаться только при следующем проходе цикла выполнения - к этому времени вы будете сделали все что нужно!
Самый простой способ сделать это - переместить код для вызова следующего представления в его собственный метод, а затем (построив UIActivityIndicator согласно другим сообщениям здесь) сделать
[self.myactivityindicator startAnimating];
[self performSelector: @selector (myCodeToCallTheView) withObject: nil afterDelay: 0];
это дает достаточно шансов для индикатор, который нужно нарисовать перед запуском вашего кода, чтобы нарисовать представление. Конечно, как только ваше новое представление появится, оно перезапишет селектор.