лучший способ - добавить ActivityIndicator во все функции setImage в UIImageView + WebCache.m, после чего вы удалите его в «webImageManager: r didFinishWithImage:», я тестирую его на устройстве, и он работает плавно, пример:
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder
{
UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyleWhiteLarge)];
[activity startAnimating];
[activity setCenter:self.center];
[self addSubview:activity];
[activity release];
SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:url];
if (cachedImage)
{
// the image is cached -> remove activityIndicator from view
for (UIView *v in [self subviews])
{
if ([v isKindOfClass:[UIActivityIndicatorView class]])
{
[activity removeFromSuperview];
}
}
}
[self setImageWithURL:url placeholderImage:placeholder options:0];
}
, и вы удаляете его с анимацией fade;):
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
for (UIView *v in [self subviews])
{
if ([v isKindOfClass:[UIActivityIndicatorView class]])
{
// NSLog(@"-didFinishWithImage-");
[((UIActivityIndicatorView*)v) stopAnimating];
[v removeFromSuperview];
}
}
[UIView beginAnimations:@"fadeAnimation" context:NULL];
[UIView setAnimationDuration:0.9];
self.alpha = 0;
self.image = image;
self.alpha=1;
//[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self cache:YES];
[UIView commitAnimations];
}
Документация NuGet содержит инструкции о том, как это сделать , и я просто успешно их выполнил для Visual Studio 2015 & amp; Visual Studio 2017 против VSTS (Azure-размещенная TFS). Все обновлено с ноября 2016 по 2018 год.
Я рекомендую вам следовать инструкциям NuGet, но просто чтобы повторить то, что я сделал:
packages
не привязаны к TFS. Если это так, вытащите его оттуда. .sln
, если не указано иное (инструкции NuGet не совсем понятны). .nuget
. Вы можете использовать проводник Windows, чтобы назвать его .nuget.
, чтобы он успешно сохранялся как .nuget
(он автоматически удаляет последний период), но напрямую пытается назвать его .nuget
может не работать (вы можете получить сообщение об ошибке или может измениться имя в зависимости от вашей версии Windows. NuGet.config
и добавьте следующее содержимое и сохраните его: NuGet .config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
.sln
и создайте новый текстовый файл и назовите его .tfignore
(если используете проводник Windows, используйте тот же трюк, что и выше и назовите его .tfignore.
) .tfignore:
# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's
# not in the same folder as .tfignore.
packages
# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
.tfignore
и .nuget
ко всем моим различные решения и совершили их, и у меня больше нет папки packages
, пытаясь проникнуть в мой репозиторий управления исходным кодом! Пока не моя, у меня есть нашел этот шаблон .tfignore
by sirkirby . Пример моего ответа охватывает папку Nuget packages
, но этот шаблон включает в себя некоторые другие вещи, а также предоставляет дополнительные примеры, которые могут быть полезны, если вы хотите настроить это дальше.
Я нашел идеальный способ игнорировать файлы в TFS, например SVN. Прежде всего, выберите файл, который вы хотите игнорировать (например, Web.config). Теперь перейдите на вкладку меню и выберите:
Управление источником файлов> Дополнительно> Исключить web.config из источника управления
blockquote>... и бум; ваш файл окончательно исключен из источника управления.
Кажется немного громоздким игнорировать файлы (и папки) в Team Foundation Server. Я нашел пару способов сделать это (используя TFS / Team Explorer / Visual Studio 2008). Эти методы также работают с типом проекта ASP для веб-сайта.
Один из способов - добавить новый или существующий элемент в проект (например, щелкнуть правой кнопкой мыши по проекту, добавить существующий элемент или перетащить его из Windows explorer в проводник решений), пусть TFS обрабатывает файл (ы) или папку, а затем отменяет ожидающие изменения в позиции (-ях). TFS отменит их как имеющую ожидающую изменения добавления, и файлы будут сидеть тихо в проекте и не будут оставаться в TFS.
Другой способ заключается в команде «Добавить элементы в папку» в Source Control Explorer. Это запускает небольшой мастер, и на одном из шагов вы можете выбрать элементы для исключения (хотя, я думаю, вам нужно добавить по крайней мере один элемент в TFS с помощью этого метода, чтобы мастер мог продолжить).
Вы даже можете добавить политику регистрации запрещенных шаблонов (в разделе Team -> Team Project Settings -> Source Control ... -> Check-in Policy), чтобы запретить другим людям в команде ошибочно проверять определенные активы.
Для TFS 2013:
Запустите в VisualStudio-Team Explorer, в диалоговом окне PendingChanges отмените изменения с состоянием [add], которое следует игнорировать.
Visual Studio снова обнаружит Add (s). Нажмите «Обнаружено: x add (s)» - в разделе «Исключенные изменения»
В открывшемся «Изменить кадровые изменения» -Dialog Вы можете легко исключить файлы и папки с помощью Contextmenu. Опции:
Не забудьте проверить измененный файл .tfignore.
Для VS 2015/2017 :
То же самое: на вкладке «Исключенные изменения» в TeamExplorer \ Pending Changes нажмите «Обнаружен»: xxx add (s)
[/g0]
Откроется диалоговое окно «Содействовать изменениям кандидатов», а в записи вы можете щелкнуть правой кнопкой мыши для Contextmenu. Typo теперь фиксируется: -)
Я собираюсь предположить, что вы используете проекты веб-сайтов. Они автоматически сканируют свою директорию проектов и бросают все в исходный контроль. Невозможно остановить их.
Однако не отчаивайтесь. Проекты веб-приложений не демонстрируют этого странного и довольно неожиданного поведения (imho: moronic). WAP является дополнением к VS2005 и поставляется с VS2008.
. В качестве альтернативы изменению ваших проектов на WAP вы можете переместить папку «Активы» из «Источника» и в библиотеку документов TFS. Только делайте это, ЕСЛИ сам проект напрямую не использует файлы активов.
Если вы используете локальные рабочие области (TFS 2012+), теперь вы можете использовать файл .tfignore
, чтобы исключить локальные папки и файлы.
Если вы добавите этот файл в исходный элемент управления вы можете гарантировать, что другие в вашей команде будут иметь одинаковые настройки исключения.
Полная информация о MSDN - http://msdn.microsoft.com/en-us/library/ms245454.aspx#tfignore
Для ленивых:
Вы можете настроить, какие типы файлов игнорируются, помещая текстовый файл с именем
.tfignore
в папку, где вы хотите, чтобы правила подать заявление. Эффекты файла.tfignore
являются рекурсивными. Тем не менее, вы можете создавать файлы .tfignore в подпапках, чтобы переопределить эффекты файла.tfignore
в родительской папке.К файлу .tfignore относятся следующие правила:
blockquote>
#
начинает строку комментария- . * и? Подстановочные знаки поддерживаются.
- Спецификация файлов является рекурсивной, если только префикс символа \.
- ! (файлы, соответствующие шаблону, не игнорируются)
Файл примера:
# Ignore .cpp files in the ProjA sub-folder and all its subfolders ProjA\*.cpp # # Ignore .txt files in this folder \*.txt # # Ignore .xml files in this folder and all its sub-folders *.xml # # Ignore all files in the Temp sub-folder \Temp # # Do not ignore .dll files in this folder nor in any of its sub-folders !*.dll
.tfignore
, поэтому я создал .tfignore.
, и он удалил последнюю точку самостоятельно.
– Peter
21 March 2015 в 14:42
.tfignore
из-за отсутствия надлежащего имени, вы можете создать его или переименовать его через окно командной строки.
– Zarepheth
21 October 2015 в 21:59